Skip to main content
Announcements
A fresh, new look for the Data Integration & Quality forums and navigation! Read more about what's changed.
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

How to convert EST to IST with tjava component?

How to convert EST to IST with tjava component?

Input data:

03/10/2019

Output should be in below format:

"EEE, MMM dd HH:mm:ss 'EST' yyyy"

 

But receiving the output in IST format only. Appreciate your kind help.

Thanks.

 

Labels (3)
1 Solution

Accepted Solutions
Anonymous
Not applicable
Author

Issue resolved with below codes:

 

String inptdate = input_row.Date;
SimpleDateFormat sdfgmt = new SimpleDateFormat("MM/dd/yyyy");
sdfgmt.setTimeZone(TimeZone.getTimeZone("IST"));
SimpleDateFormat sdfmad = new SimpleDateFormat("MM/dd/yyyy 'at' hh:mma z");
sdfmad.setTimeZone(TimeZone.getTimeZone("EST"));
Date date = sdfgmt.parse(inptdate);

output_row.Date = sdfmad.format(date);

String inptdate1 = input_row.Date;
SimpleDateFormat sdfgmt1 = new SimpleDateFormat("MM/dd/yyyy");
sdfgmt1.setTimeZone(TimeZone.getTimeZone("IST"));
SimpleDateFormat sdfmad1 = new SimpleDateFormat("dd MMMM yyyy zzzz");
sdfmad1.setTimeZone(TimeZone.getTimeZone("IST"));
Date date1 = sdfgmt1.parse(inptdate1);
output_row.Date1 = sdfmad1.format(date1);


String inptdate2 = input_row.Date;
SimpleDateFormat sdfgmt2 = new SimpleDateFormat("MM/dd/yyyy");
sdfgmt2.setTimeZone(TimeZone.getTimeZone("IST"));
SimpleDateFormat sdfmad2 = new SimpleDateFormat("EEE, MMM dd HH:mm:ss zzz yyyy");
sdfmad2.setTimeZone(TimeZone.getTimeZone("IST"));
Date date2 = sdfgmt2.parse(inptdate2);
output_row.Date2 = sdfmad2.format(date2);

 


Output.png

View solution in original post

4 Replies
vapukov
Master II

Hi,

 

this is your question - https://stackoverflow.com/questions/54684583/how-to-fix-date-format-issue-in-talend/54687280?noredir...

?

 

as mentioned there, the same question here

 

do you want real conversion?

 

in this case all you dates will be converted to date + EST time

or you just want to use print the same date with 00:00:00 for time and just add EST?

 

if just print, you could set JVM timezone to EST

TalendDate.formatDate("EEE, MMM dd HH:mm:ss 'EST' yyyy",row1.strDate) 

because your input does not contain the time, your output in proper EST will always have format like

Sun, Mar 10 13:30:00 EST 2019

but if you do not need time, do as above

Anonymous
Not applicable
Author

Thank you for your reply! 

via using the above statement..I get the output in the IST format with the hard coded value 'EST'.  No worries I write a java code in tjavarow to convert the IST to EST format.

 

But now the issue is that - the output is not getting in the Column3. For the Column3 I have written a java code. Please find below:

SimpleDateFormat FORMATTER = new SimpleDateFormat("MM/dd/yyyy 'at' hh:mma z");
TimeZone istTimeZone = TimeZone.getTimeZone("Asia/Kolkata"); //Source timezone
TimeZone etTimeZone = TimeZone.getTimeZone("America/New_York"); //Target timezone
Calendar Date = Calendar.getInstance(etTimeZone);
FORMATTER.setTimeZone(etTimeZone);
System.out.println(FORMATTER.format(Date.getTime()));

 

Output should be like this: Please find attached screenshot.

 

Can you please help me to get the correct output in Column3. Thank you.

 


OutputConsole.png
Anonymous
Not applicable
Author

Issue resolved with below codes:

 

String inptdate = input_row.Date;
SimpleDateFormat sdfgmt = new SimpleDateFormat("MM/dd/yyyy");
sdfgmt.setTimeZone(TimeZone.getTimeZone("IST"));
SimpleDateFormat sdfmad = new SimpleDateFormat("MM/dd/yyyy 'at' hh:mma z");
sdfmad.setTimeZone(TimeZone.getTimeZone("EST"));
Date date = sdfgmt.parse(inptdate);

output_row.Date = sdfmad.format(date);

String inptdate1 = input_row.Date;
SimpleDateFormat sdfgmt1 = new SimpleDateFormat("MM/dd/yyyy");
sdfgmt1.setTimeZone(TimeZone.getTimeZone("IST"));
SimpleDateFormat sdfmad1 = new SimpleDateFormat("dd MMMM yyyy zzzz");
sdfmad1.setTimeZone(TimeZone.getTimeZone("IST"));
Date date1 = sdfgmt1.parse(inptdate1);
output_row.Date1 = sdfmad1.format(date1);


String inptdate2 = input_row.Date;
SimpleDateFormat sdfgmt2 = new SimpleDateFormat("MM/dd/yyyy");
sdfgmt2.setTimeZone(TimeZone.getTimeZone("IST"));
SimpleDateFormat sdfmad2 = new SimpleDateFormat("EEE, MMM dd HH:mm:ss zzz yyyy");
sdfmad2.setTimeZone(TimeZone.getTimeZone("IST"));
Date date2 = sdfgmt2.parse(inptdate2);
output_row.Date2 = sdfmad2.format(date2);

 


Output.png
vapukov
Master II


@pgajghate wrote:

Issue resolved with below codes:

 


Congratulations!

 

but this is not what was asking for 🙂 

0683p000009M2ck.png

 

this is why I asked you about time difference, which you have in your final output

 

0683p000009M2hV.png

 

any time when expecting a proper answer - you must ask a proper question! 🙂

 

in any case - welcome!

P.S.

why did I think it is the same question?

because it uses the same answer 🙂