2017-08-09 80 views
-5

我试图解析字符串到日期了,我只需要找到这种类型下面日期的模式:我看了00这种类型的日期的模式是什么?

2016-09-07T02:03:30.000 + 03所有的模式here。我试过这个“2001-07-04T12:08:56.235-07:00”,但没有奏效。当我尝试从控制台进行调试时(因为我正在为软件制作一个插件,因此无法仅通过单击运行按钮就可以运行代码),但没有发生错误。

我用这个代码解析:

DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"); 
Date date1 = format.parse(startTimeList.get(1)); 

因此,任何人都知道这个模式?

非常感谢

+1

这是标准[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)日期格式。你的意思是“它没有工作”? – Jesper

+0

你如何看待它不起作用?似乎工作得很好。 – Kayaman

+0

你刚刚(编辑之前)有新的SimpleDateFormat(“yyyy-MM-dd'T'HH:mm:ss.SSSXXX;”);与“;”里面。尝试删除“;”从这一点,它应该看起来像这个新的SimpleDateFormat(“yyyy-MM-dd'T'HH:mm:ss.SSSXXX”); –

回答

-1

使用乔达时间,这是一个受欢迎的库和作品般的魅力。
要遵循的步骤:

  1. 添加Jodatime到您的项目。这里Download Joda-time
    2.添加下面的代码。

    String date = "2016-09-07T02:03:30.000+03:00"; 
    DateTime dt = new DateTime(date) ; 
    System.out.print(dt.toDate()); 
    


我的输出:
周三07九月四点33分三十秒IST 2016

+0

我解决了问题,但刚刚发现了Joda-Time,我认为这比其他人更容易。谢谢 – ErkanKarabulut

+0

谁downvote我的答案,请澄清,如果我把错了什么? –

+0

@ErkanKarabulut Please upvote or accept the answer if you help it –

0

Java的8路
如果你不想使用任何外部库像乔达时间你可以做到这一点:

import java.time.Instant; 
import java.util.Date; 

public class DateParse { 
    public static void main(String[] args){ 
     Instant instant = Instant.parse("2016-11-01T16:51:35.000Z"); 
     Date newDate = Date.from(instant); 
     System.out.print(newDate); 

    } 


} 

我的输出是:

Tue Nov 01 22:21:35 IST 2016 
    Process finished with exit code 0 


注意:小心输入了即时而因为乔达时间还提供即时类。