Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何以java获取此datetime格式_Java_Android_Date_Datetime_Datetime Format - Fatal编程技术网

如何以java获取此datetime格式

如何以java获取此datetime格式,java,android,date,datetime,datetime-format,Java,Android,Date,Datetime,Datetime Format,我遵循这个api,这个api需要一个日期头,他们说他们只支持GMT日期格式,所以我尝试了下面所有的方法,但没有一个成功 @Test public void testFormat(){ Date a = new Date("Tue, 08 Dec 2015 06:13:40 GMT"); System.out.println(a); Date b = new Date("Thu, 17 Mar 2012 18:49:58 GMT"); System.out.prin

我遵循这个api,这个api需要一个日期头,他们说他们只支持GMT日期格式,所以我尝试了下面所有的方法,但没有一个成功

@Test
public void testFormat(){
    Date a = new Date("Tue, 08 Dec 2015 06:13:40 GMT");
    System.out.println(a);
    Date b = new Date("Thu, 17 Mar 2012 18:49:58 GMT");
    System.out.println(b);
    System.out.println(b.toGMTString()); // 17 Mar 2012 18:49:58 GMT
    System.out.println(b.toLocaleString());// 2012-3-18 2:49:58
    System.out.println(DateFormatUtils.ISO_8601_EXTENDED_DATETIME_TIME_ZONE_FORMAT.format(b));//2012-03-18T02:49:58+08:00
}
那么,这是什么格式的
Tue,2015年12月8日06:13:40 GMT
,我如何在Java中获得这种格式

编辑

输出

Tue Dec 08 14:13:40 CST 2015
Sun Mar 18 02:49:58 CST 2012
17 Mar 2012 18:49:58 GMT
2012-3-18 2:49:58
2012-03-18T02:49:58+08:00

我不是在问模式,我想知道这种格式有没有标准或名称

您应该使用
SimpleDataFormat
类。通过正确的模式,你可以得到你想要的任何输出。 有您应该参考的函数的文档

您应该使用
SimpleDataFormat
类。通过正确的模式,你可以得到你想要的任何输出。 有您应该参考的函数的文档
这是什么格式的
周二,2015年12月8日06:13:40 GMT
?有什么标准或名称吗?

将其称为“IETF标准日期语法”。作为“RFC 1123/RFC 822”。后者更新很多,因此可能更为流行

如何在Java中获取此格式?

它是内置的。例如,在我的计算机上刚刚生成的
OffsetDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME)

Thu, 6 Apr 2017 15:25:44 +0200
我使用的类在
java.time
包中。它们内置于我正在使用的Java8中。在Android上,您可以在中获取
java.time

上述输出中的分区偏移量为
+0200
。如果我希望它是
GMT
?只需使用OffsetDateTime.now(ZoneOffset.UTC).format(DateTimeFormatter.RFC_1123_DATE_TIME),它就可以了。更一般地说,确保您的
OffsetDateTime
处于UTC偏移量。或者,使用
DateTimeFormatter.RFC\u 1123\u DATE\u TIME.withZone(ZoneOffset.UTC)
;这将覆盖
OffsetDateTime
的区域


如果你不想依赖ThreeTenABP,我相信Zaki Pathan的评论为你提供了Android的解决方案。

这是什么格式的
周二,2015年12月8日06:13:40 GMT
?有什么标准或名称吗?

将其称为“IETF标准日期语法”。作为“RFC 1123/RFC 822”。后者更新很多,因此可能更为流行

如何在Java中获取此格式?

它是内置的。例如,在我的计算机上刚刚生成的
OffsetDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME)

Thu, 6 Apr 2017 15:25:44 +0200
我使用的类在
java.time
包中。它们内置于我正在使用的Java8中。在Android上,您可以在中获取
java.time

上述输出中的分区偏移量为
+0200
。如果我希望它是
GMT
?只需使用OffsetDateTime.now(ZoneOffset.UTC).format(DateTimeFormatter.RFC_1123_DATE_TIME),它就可以了。更一般地说,确保您的
OffsetDateTime
处于UTC偏移量。或者,使用
DateTimeFormatter.RFC\u 1123\u DATE\u TIME.withZone(ZoneOffset.UTC)
;这将覆盖
OffsetDateTime
的区域


如果你不想依赖ThreeTenABP,我相信Zaki Pathan的评论为你提供了Android的解决方案。

请编辑你的问题并添加引用代码的输出参见
SimpleDateFormat
docs:DateFormat formatter=new SimpleDateFormat(“EEE,dd MMM yyyy HH:mm:ss z”);请编辑您的问题并添加引用代码的输出参见
SimpleDateFormat
docs:DateFormat formatter=new SimpleDateFormat(“EEE,dd-MMM-yyy-HH:mm:ss z”);