猿问

当字符串以 Z 结尾时将字符串转换为日期格式

我必须将以下字符串解析为更易读的日期格式。


字符串日期 = "20190112151605.0Z";


但是,我以前从未遇到过Z。我知道这与时区有关,但是当我尝试使用我常用的代码时,我得到一个 java.lang.NumberFormatException。


我的代码如下:


 String whenChanged = "20190112151605.0Z";  


 long DIFF_NET_JAVA_FOR_DATE_AND_TIMES = 11644473600000L;

 long adDate1 = Long.parseLong(whenChanged);

 long adLongDate1 = ( adDate1  / 10000 ) - DIFF_NET_JAVA_FOR_DATE_AND_TIMES;

 Date lastLogonDate1 = new Date(adLongDate1);

 String format2 = new SimpleDateFormat("MM/dd/yyyy 

 HH:mma'Z'").format(lastLogonDate1);

任何帮助都会很棒。谢谢


跃然一笑
浏览 274回答 2
2回答

呼如林

这会成功的。表示UTCZ时区DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyyMMddHHmmss.Sz");ZonedDateTime parsed = ZonedDateTime.parse("20190112151605.0Z", fmt);System.out.println(parsed);     // prints 2019-01-12T15:16:05请参阅日期时间格式化程序

慕雪6442864

你有必要对这些时区做任何事情吗?如果没有,你可以做if(whenChanged.contains('Z')){   whenChanged = whenChanged.substring(0,date.indexOf('Z'));}
随时随地看视频慕课网APP

相关分类

Java
我要回答