将字符串转换为日期格式时字符串在Z结束

问题描述 投票:2回答:2

我要解析以下字符串更可读的日期格式。

字符串日期= “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);

任何帮助将是巨大的。谢谢

java date simpledateformat
2个回答
3
投票

这将这样的伎俩。该Z指UTC时区

DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyyMMddHHmmss.Sz");
ZonedDateTime parsed = ZonedDateTime.parse("20190112151605.0Z", fmt);

System.out.println(parsed);     // prints 2019-01-12T15:16:05

DateTimeFormatter


0
投票

是否有必要为你做这些时区的东西吗?

如果没有,你可以做

if(whenChanged.contains('Z')){
   whenChanged = whenChanged.substring(0,date.indexOf('Z'));
}
© www.soinside.com 2019 - 2024. All rights reserved.