Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
String dt = "1900-01-01"; // Start date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
c.setTime(sdf.parse(dt));
c.add(Calendar.DATE, input_row.EXCEL_DATE.intValue() ); // number of days to add
output_row.REAL_DATE= sdf.format(c.getTime());
import java.text.SimpleDateFormat;
import java.util.Calendar;
/**
* Convert ExcelDateTime Jan1900 serial date values in the way ZeljkaMom Wants
*
*
* {talendTypes} String
*
* {Category} User Defined
*
* {param} double(40682.55946)
*
* {example} DateTime(40792.3794097222) # 2011-06-09T09:06:21
* @throws ParseException
*/
public static String DateTime(Double DateTimeXLS) throws ParseException {
// Hardcoded start date - since Excel serial values based on 01.01.1900 are assumed
String dt = "1899-12-30 00:00:00";
int secInDay = 86400;
int minInDay = 1440;
int hourInDay = 24;
Double InputTime = DateTimeXLS - DateTimeXLS.intValue();
int myHour = new Double(InputTime * hourInDay).intValue();
int myMin = new Double((InputTime * minInDay) - (myHour * 60)).intValue();
int mySec = new Double((InputTime * secInDay) - ((myHour * 3600) + (myMin * 60))).intValue();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat sdf_date = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdf_time = new SimpleDateFormat("HH:mm:ss");
Calendar c = Calendar.getInstance();
c.setTime(sdf.parse(dt));
// number of days/hours/minutes/seconds to add
c.add(Calendar.DATE, DateTimeXLS.intValue());
c.add(Calendar.HOUR, myHour);
c.add(Calendar.MINUTE, myMin);
c.add(Calendar.SECOND, mySec);
return sdf_date.format(c.getTime()) + "T" + sdf_time.format(c.getTime());
}
output_row.dt_datetime_string = myfuncs.DateTime(input_row.dt_value);