Java 2019-06-17T20:27:23.70600000Z的日期格式是什么?
2019-06-17T20:27:23.70600000Z的日期格式是什么? 我需要这个日期格式的日期格式,还需要解析它并将其转换为java日期 我试过这个:Java 2019-06-17T20:27:23.70600000Z的日期格式是什么?,java,date,simpledateformat,date-format,dateformatter,Java,Date,Simpledateformat,Date Format,Dateformatter,2019-06-17T20:27:23.70600000Z的日期格式是什么? 我需要这个日期格式的日期格式,还需要解析它并将其转换为java日期 我试过这个: SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); 但是,它给了我不正确的结果。试试这个: import java.text.SimpleDateFormat; import java.util.Date; import j
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
但是,它给了我不正确的结果。试试这个:
import java.text.SimpleDateFormat;
import java.util.Date;
import java.text.DateFormat;
import java.util.TimeZone;
public class Main
{
public static void main(String[] args){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
try{
Date date = sdf.parse("2019-06-17T20:27:23.706Z");
System.out.println(date);
}
catch(Exception pe){
System.out.println(pe);
}
}
}
输出:
Mon Jun 17 20:27:23 UTC 2019
顺便说一下,您也可以尝试以下方法:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS'Z'");
两者给出相同的结果
尝试使用java.time
包(Java8)中的Instant
感谢Anubav,如果我们使用2019-06-17T20:27:23.706000000Z,它会给我2019年6月26日星期三00:34:03 PDT的结果,这是不正确的。。所以它在毫秒内只能支持3位数字?有没有一种方法可以处理超过3位的数字?是的,因为毫秒(SSS)只能是3位检查:检查这个,所以回答和评论,我想你会找到答案。是的,当然。我已经包含了java.time包中的一个解决方案。我建议您不要使用
SimpleDataFormat
。那门课是出了名的麻烦和过时。您的格式是ISO8601。使用Instant
或OffsetDateTime
,两者都来自。它们中的每一个都将在没有任何显式格式化程序的情况下解析您的字符串。嘿,谢谢您提供的信息。是的,我使用的是instant类,它比遗留的date-time类要好得多
String value = "2019-06-17T20:27:23.706000000Z";
Instant instant = Instant.parse(value);
Date date = Date.from(instant);