Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert Epoch time to date and Date to Epoch time in Android [duplicate]

StrDate = "2011-07-19T18:23:20+0000";

How can I get an epoch time for the above date format in android

also I would like to know how to convert a epoch time to the above date format.

I would appreciate a direct answer with an example.

like image 201
Ramji Avatar asked Jul 20 '11 06:07

Ramji


3 Answers

You should use SimpleDateFormat. That class both supports formatting, and parsing.

Sample code:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssZZZZ");
Date gmt = formatter.parse("2011-07-19T18:23:20+0000");
long millisecondsSinceEpoch0 = gmt.getTime();
String asString = formatter.format(gmt);

Note that a Date instance in Java, always represent milliseconds since epoch 0, in UTC/GMT, but it is printed in local time when you print it.

like image 164
Kaj Avatar answered Oct 28 '22 01:10

Kaj


Example code using Joda-Time 2.3.

Unix time is number of seconds since beginning of 1970 in UTC/GMT.

How can I get an epoch time for the above date format in android

DateTime dateTimeInUtc = new DateTime( "2011-07-19T18:23:20+0000", DateTimeZone.UTC );
long secondsSinceUnixEpoch = ( dateTimeInUtc.getMillis() / 1000 ); // Convert milliseconds to seconds.

…and…

how to convert a epoch time to the above date format.

String dateTimeAsString = new DateTime( secondsSinceUnixEpoch * 1000, DateTimeZone.UTC ).toString();

To dump those values to the console…

System.out.println( "dateTimeInUtc: " + dateTimeInUtc );
System.out.println( "secondsSinceUnixEpoch: " + secondsSinceUnixEpoch );
System.out.println( "dateTimeAsString: " + dateTimeAsString );

Bonus: Adjust to another time zone.

DateTime dateTimeMontréal = dateTimeInUtc.withZone( DateTimeZone.forID( "America/Montreal" ) );
like image 45
Basil Bourque Avatar answered Oct 28 '22 01:10

Basil Bourque


To answer your question a bit late but Joda-Time will be able to handle both in a simply and clean way.

Using Joda-Time

1.Epoch time to Date

Where date is your epoch time

DateTime dateTime = new DateTime(date*1000L);
System.out.println("Datetime ..." + dateTime);

Datetime from Epoch ...2014-08-01T13:00:00.000-04:00

2.Date to epoch

 DateTime fromDate = new DateTime("2011-07-19T18:23:20+0000");
 long epochTime =  fromDate.getMillis();
 System.out.println("Date is.." + fromDate + " epoch of date " + epochTime);

 Date is..2011-07-19T14:23:20.000-04:00 epoch of date 1311099800000
like image 43
Skillachie Avatar answered Oct 28 '22 01:10

Skillachie