StrDate = "2011-07-19T18:23:20+0000";
我如何在Android中获取上述日期格式的纪元时间?
还想知道如何将纪元时间转换为上述日期格式。
希望您能给出一个带有示例的直接答案。
StrDate = "2011-07-19T18:23:20+0000";
我如何在Android中获取上述日期格式的纪元时间?
还想知道如何将纪元时间转换为上述日期格式。
希望您能给出一个带有示例的直接答案。
DateTime dateTimeInUtc = new DateTime( "2011-07-19T18:23:20+0000", DateTimeZone.UTC );
long secondsSinceUnixEpoch = ( dateTimeInUtc.getMillis() / 1000 ); // Convert milliseconds to seconds.
String dateTimeAsString = new DateTime( secondsSinceUnixEpoch * 1000, DateTimeZone.UTC ).toString();
System.out.println( "dateTimeInUtc: " + dateTimeInUtc );
System.out.println( "secondsSinceUnixEpoch: " + secondsSinceUnixEpoch );
System.out.println( "dateTimeAsString: " + dateTimeAsString );
DateTime dateTimeMontréal = dateTimeInUtc.withZone( DateTimeZone.forID( "America/Montreal" ) );
您应该使用SimpleDateFormat。该类支持格式化和解析。
示例代码:
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);
虽然有些晚,但Joda-Time可以简单干净地处理这两个问题。
1.将纪元时间转换为日期
其中日期是您的纪元时间
DateTime dateTime = new DateTime(date*1000L);
System.out.println("Datetime ..." + dateTime);
Datetime from Epoch ...2014-08-01T13:00:00.000-04:00
2.日期转换为纪元时间
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
getTime()
返回的毫秒数始终始终始终是 GMT 中的毫秒数。toString()
将始终以本地时间打印时间,但这只是一个纯粹的表示问题。日期只是 GMT 中的毫秒数的包装器。 - Kaj