如何在java中获取此日期时间格式

时间:2017-04-06 09:33:45

标签: java android date datetime datetime-format

我遵循这个api document,这个api需要一个Date标题,他们说他们只支持GMT日期格式,所以我尝试了所有的吼叫,但没有人成功。

if($this->form_validation->run() == false)
{
    SHOW ERRORS
    $this->load->view('YearEndStock/tampilan_input_gagal');
}
else
{
    $row = $this->db->get_where('inventorytag', array('tagnumber' => $tagnumber))->row();

    if (empty($row)) {
    //insert
    $this->myigniter_model->addData($tagnumber);
    } else {
    //row exists
    }

    $this->load->view('YearEndStock/tampilan_input_sukses');


}

那么,这个格式是什么@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 } ,我如何用Java获取这种格式?

修改

输出

Tue, 08 Dec 2015 06:13:40 GMT

我不只是问模式,我想知道这种格式是否有任何标准或名称?

2 个答案:

答案 0 :(得分:3)

这个Tue, 08 Dec 2015 06:13:40 GMT的格式是什么?是否有任何标准或名称?

The doc of Date.parse()将其称为“IETF标准日期语法”。 That of DateTimeFormatter.RFC_1123_DATE_TIME为“RFC 1123 / RFC 822”。后者是更新的,所以可能更新。

如何在Java中使用此格式?

它内置为java.time.format.DateTimeFormatter.RFC_1123_DATE_TIME。例如,在我刚刚制作的计算机OffsetDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME)

Thu, 6 Apr 2017 15:25:44 +0200

我使用的类位于java.time包中。它们内置于我正在使用的Java 8中。在Android上,您可以在the ThreeTenABP中获取java.time课程。

上述输出中的区域偏移为+0200。如果我希望它GMT怎么办?只需使用OffsetDateTime.now(ZoneOffset.UTC).format(DateTimeFormatter.RFC_1123_DATE_TIME)即可。更一般地,确保您的OffsetDateTime在UTC偏移量中。或者,使用DateTimeFormatter.RFC_1123_DATE_TIME.withZone(ZoneOffset.UTC);这将覆盖OffsetDateTime的区域。

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

答案 1 :(得分:1)

您应该使用SimpleDateFormat课程。传递正确的模式,你可以获得任何你想要诚实的输出。 有关于您应该参考的功能的文档 Java Doc Simple Date Format