· df · 2 min read

Epoch Human Time Batch Conversion script

Technology

I had to create a sample script to convert epoch time to Human readable format.  (both ways)

Also from Human readable time format to Epoch.  Input is a file with “Epoch” or “Human Readable”  format and the program will convert in the other format.

Till now we used: http://www.epochconverter.com/ . But for embedding into your application or for batch convert, please find my program in Java

import java.io.;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.SimpleTimeZone;
import java.util.concurrent.TimeUnit;

public class EpochConverterClass {

/**
@param args
*/
public static String dateHumanConvert(String dateEpochFormat) {
SimpleDateFormat formatter = new SimpleDateFormat(“dd/MM/yyyy HH:mm:ss”);
Calendar cal = Calendar.getInstance(new SimpleTimeZone(0, “GMT”));
formatter.setCalendar(cal);

Date dateHuman = new Date(Long.parseLong(dateEpochFormat) * 1000);
// eg 22/07/2011 02:46:54
String dateString = dateEpochFormat + “,”+formatter.format(dateHuman).toString();
return dateString;
}

public static String dateEpochConvert(String dateHumanFormat)  throws ParseException {
SimpleDateFormat formatter2 = new SimpleDateFormat(“dd/MM/yyyy HH:mm:ss”);
Date date = formatter2.parse(dateHumanFormat);
long timeInMillisSinceEpoch = date.getTime();
String dateString = dateHumanFormat + “,”+ String.valueOf(TimeUnit.MILLISECONDS.toSeconds(timeInMillisSinceEpoch));
return dateString;
}

public static void main(String[] args) throws IOException, FileNotFoundException {

try{
// Open the file that is the first
// command line parameter
if (args.length != 2) {
System.out.println(“Please enter: timeformatof Input file,  Input Config File”);
System.out.println(“Usage: <scriptname> <inputfiletimeformat> <input_file_name_full_path>”);
System.exit(10);

}
String FormatDetection = args [0];
FileInputStream fstream = new FileInputStream(args[1]);
// Get the object of DataInputStream
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String dateEpoch, dateHumanFormat;

//String dateEpoch = “1311302814”;
//Read File Line By Line

if (FormatDetection.equals(“epoch”))  {
System.out.println(“EPOCH_TIME,DATE_TIME_FORMAT_GB”);
while ((dateEpoch = br.readLine()) != null)   {
System.out.println (dateHumanConvert(dateEpoch));

}
}
else if (FormatDetection.equals(“human”)){
System.out.println(“DATE_TIME_FORMAT_GB,EPOCH_TIME”);
while ((dateHumanFormat = br.readLine()) != null)   {
System.out.println (dateEpochConvert(dateHumanFormat));
}
}

else {
System.out.println (“program Unable to detect format of Date”);
}

//Close the input stream
in.close();
br.close();
fstream.close();
}catch (Exception e){//Catch exception if any
System.err.println(“Error: “ + e.getMessage());
}

// TODO Auto-generated method stub

}

}

The Usage is like below

Usage: <scriptname> <inputfiletimeformat> <input_file_name_full_path>

where inputfiletimeformat is either “epoch”  or “human” to convert between two formats.

 

I’ve attached a basic shell script as a wrapper to run the java program
#!/usr/bin/ksh

# Wrapper to run the java file
# Please input the input config file containing epochTimes
# The config file should contain only 1 epoch Time per line
# Basic Batch Epoch Converter : diaryFolio

# Format
# ./runThis.ksh <inputFileDateFormat> <inputConfigFilename>

which java -classpath “.” EpochConverterClass $1 $2