我一直在为Android应用程序的这段代码挣扎了一段时间,我无法获取它的诀窍。我已经阅读并尝试了我在stackoverflow和其他地方找到的每个解决方案,但仍然没有运气。以纳秒为单位的字符串日期转换
我想要做的是有一个函数来将字符串"17.08.2012 05:35:19:7600000"
转换为UTC日期和一个函数,它需要UTC date
并将其转换为像这样的字符串。
String value = "17.08.2012 05:35:19:7600000";
DateFormat df = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss:SSSSSSS");
try
{
Date today = df.parse(value);
System.out.println("Today = " + df.format(today) + " " + today.toGMTString());
}
catch (ParseException e)
{
e.printStackTrace();
}
这会导致:Today = 17.08.2012 07:41:59:0000000 17 Aug 2012 04:41:59 GMT
这两个都是错误的。
我试图设置SDF's timezone
到UTC
,没有运气。
我注意到的另一件事:如果我做df.setLenient(false);
它给我:java.text.ParseException: Unparseable date: "17.08.2012 05:35:19:7600000"
。
如果有人能给我提供一些解释/示例代码,我将非常感激。在此先感谢
谢谢! setTimeZone(TimeZone.getTimeZone(“UTC”))后,一切都OK了。大约毫秒,我想我会把它们重置为0.不要以为这对我来说很重要。我给出的例子是服务器的响应,作为UTC现在的时间,我将不得不明白为什么它会返回那些毫秒。 – Rhadoozooz 2012-08-17 06:42:59
很高兴你已经找到了问题!祝你好运! :) – Eric 2012-08-17 06:43:41
@Eric BTW很好的解释,可观。 – 2012-08-17 06:55:05