Java “此”的时间格式是什么;日期:&引用;2014-08-20 00:00:00-0500;?
我尝试通过以下方式转换此日期:Java “此”的时间格式是什么;日期:&引用;2014-08-20 00:00:00-0500;?,java,android,date,Java,Android,Date,我尝试通过以下方式转换此日期: SimpleDateFormat fromFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSSZ"); 但我得到了: java.text.ParseException: Unparseable date: "2014-09-20 00:00:00 -0500" (at offset 20) “-0500”是UTC的偏移量,采用RFC822格式。您只需要Z,而不需要SSS 表中有如下内容: 符号:Z
SimpleDateFormat fromFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSSZ");
但我得到了:
java.text.ParseException: Unparseable date: "2014-09-20 00:00:00 -0500" (at offset 20)
“-0500”是UTC的偏移量,采用RFC822格式。您只需要Z
,而不需要SSS
表中有如下内容:
- 符号:Z
- 含义:时区(RFC 822)
- 种类:(时区)
- 示例:
:-0800Z/ZZ/ZZZ
:GMT-08:00ZZZZ
:-08:00ZZZZZ
locale.US
:
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z",
Locale.US);
String text = "2014-08-20 00:00:00 -0500";
System.out.println(format.parse(text));
答案是正确的
标准日期时间格式
下面是一些示例代码,演示如何将字符串转换为符合
乔达时间
您可以将该兼容字符串直接传递给中的DateTime构造函数。Java 8中的等效版本也是如此(受Joda Time的启发)
转储到控制台
System.out.println( "inputRaw: " + inputRaw );
System.out.println( "input: " + input );
System.out.println( "dateTimeMontréal: " + dateTimeMontréal );
System.out.println( "dateTimeUtc: " + dateTimeUtc );
当运行时
inputRaw:2014-08-20 00:00:00-0500
输入:2014-08-20T00:00:00-0500
日期时间:2014-08-20T01:00:00.000-04:00
日期时间UTC:2014-08-20T05:00:00.000Z
DateTimeZone timeZone = DateTimeZone.forID( "America/Montreal" ); // Specify it rather than have JVM's default applied.
DateTime dateTimeMontréal = new DateTime( input, timeZone );
DateTime dateTimeUtc = dateTimeMontréal.withZone( DateTimeZone.UTC );
System.out.println( "inputRaw: " + inputRaw );
System.out.println( "input: " + input );
System.out.println( "dateTimeMontréal: " + dateTimeMontréal );
System.out.println( "dateTimeUtc: " + dateTimeUtc );