当字符串以 Z 结尾时将字符串转换为日期格式
Converting a string to date format when the String ends in 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);
任何帮助都会很棒。谢谢
您需要对这些时区做些什么吗?
如果没有你可以做
if(whenChanged.contains('Z')){
whenChanged = whenChanged.substring(0,date.indexOf('Z'));
}
这样就可以了。 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
我必须将以下字符串解析为更易读的日期格式。
字符串日期 = "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);
任何帮助都会很棒。谢谢
您需要对这些时区做些什么吗?
如果没有你可以做
if(whenChanged.contains('Z')){
whenChanged = whenChanged.substring(0,date.indexOf('Z'));
}
这样就可以了。 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