Java String to DateTime
我有一个来自json响应的字符串:
1 2 | start:"2013-09-18T20:40:00+0000", end:"2013-09-18T21:39:00+0000", |
如何将此字符串转换为java DateTime对象?
我尝试过使用以下内容:
1 2 | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"); start = sdf.parse("2013-09-18T20:40:00+0000"); |
但有了这个,我只能创建一个日期对象。 但是在String中绑定的时间是必不可少的。
任何帮助是极大的赞赏!
您不需要
1 2 3 | int hours = start.getHours(); //returns the hours int minutes = start.getMinutes(); //returns the minutes int seconds = start.getSeconds(); //returns the seconds |
正如R.J所说,这些方法已被弃用,因此您可以使用
1 2 3 4 5 |
注意:在我的结尾,
1 2 3 | java.text.ParseException: Unparseable date:"2013-09-18T20:40:00+0000" at java.text.DateFormat.parse(DateFormat.java:357) at MainClass.main(MainClass.java:16) |
您可以从Java Date对象创建Joda DateTime对象,因为Java没有
1 | DateTime dt = new DateTime(start.getTime()); |
虽然
1 2 |
有关如何更有效地使用它的更多信息,请查看日历文档。
事情发生了变化,现在甚至Java(准确地说是Java 8)都有一个LocalDateTime和ZonedDateTime类。对于转换,您可以查看此SO答案(从那里发布摘录)。
鉴于:
(1)LocalDateTime << Instant << Date
1 2 | Instant instant = Instant.ofEpochMilli(date.getTime()); LocalDateTime ldt = LocalDateTime.ofInstant(instant, ZoneOffset.UTC); |
(2)日期<< Instant << LocalDateTime
您可以使用DateTimeFormatter
1 2 | DateTimeFormatter format = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"); DateTime time = format.parseDateTime("2013-09-18T20:40:00+0000"); |