姬長信(Redy)

java – 具有纳秒的字符串日期转换


我已经用这段代码为Android应用程序挣扎了一段时间,我无法理解它.我已经阅读并尝试了我在stackoverflow和其他地方找到的每个解决方案,但仍然没有运气.

我想要做的是有一个函数将像“17.08.2012 05:35:19:7600000”这样的字符串转换为UTC日期和一个接受UTC日期并将其转换为类似字符串的函数.

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();
}

结果如下:今天= 17.08.2012 07:41:59:0000000 2012年8月17日04:41:59 GMT这两个都是错的.

我尝试将SDF的时区设置为UTC,没有运气.
我注意到的另一件事:如果我做df.setLenient(false);
它给了我:java.text.ParseException:Unparseable date:“17.08.2012 05:35:19:7600000”.

如果有人能提供一些解释/示例代码,我将非常感激.提前致谢