{
"time_slots": [
{
"id": 1,
"from_time": "2000-01-01T09:00:00.000Z",
"to_time": "2000-01-01T10:00:00.000Z",
"created_at": "2016-05-27T08:09:05.979Z",
"updated_at": "2016-05-27T08:09:05.979Z",
"status": true
},
{
"id": 2,
"from_time": "2000-01-01T10:00:00.000Z",
"to_time": "2000-01-01T11:00:00.000Z",
"created_at": "2016-05-27T08:17:43.121Z",
"updated_at": "2016-05-27T08:17:43.121Z",
"status": true
},
{
"id": 3,
"from_time": "2000-01-01T13:00:00.000Z",
"to_time": "2000-01-01T14:00:00.000Z",
"created_at": "2016-05-27T08:18:06.251Z",
"updated_at": "2016-05-27T08:18:06.251Z",
"status": true
},
{
"id": 4,
"from_time": "2000-01-01T14:00:00.000Z",
"to_time": "2000-01-01T15:00:00.000Z",
"created_at": "2016-05-27T08:18:34.752Z",
"updated_at": "2016-05-27T08:18:34.752Z",
"status": true
}
]}任何人都可以帮助如何在android中将json字符串时间转换为时间格式吗。我尝试使用简单日期格式SimpleDateFormat("yyyy-mm-ddTh:m:s")进行转换;但它不起作用。非常感谢您的帮助。
tl;dr
Instant.parse( "2016-05-27T08:17:43.121Z" )
详细信息
json字符串时间
没有"JSON时间"这样的东西。您所拥有的是标准ISO8601格式的字符串。
末尾的Z
发音为Zulu
,意思是UTC。
android中的时间格式。
没有"Android时间格式"这样的东西。您可以使用任何适合用户人类语言和文化规范的格式。请参阅DateTimeFormatter
类,特别是它的ofLocalized…
方法。
SimpleDateFormat("yyyy-mm-ddTh:m:s")
该类是与最早版本的Java捆绑在一起的麻烦的旧日期-时间类的一部分。它们在几年前被java.time类所取代。
在解析/生成字符串时,java.time类默认使用标准ISO 8601格式。因此,无需指定格式化模式。
Instant instant = Instant.parse( "2016-05-27T08:17:43.121Z" ) ;
要在某个地区(时区)的人使用的挂钟时间中看到相同的时刻,请应用ZoneId
来获得ZonedDateTime
对象。
ZoneId z = ZoneId.of( "Africa/Tunis" ) ; // Always use proper time zone names in `Continent/Region` format, never pseudo-zones like `PDT`, `CST`, `IST`, etc.
ZonedDateTime zdt = instant.atZone( z ) ; // Same moment, same point on the timeline, different wall-clock time.
关于java.time
java.time框架构建在Java8及更高版本中。这些类取代了诸如java.util.Date
、Calendar
和&SimpleDateFormat
。
现在处于维护模式的JodaTime项目建议迁移到java.Time类。
要了解更多信息,请参阅Oracle教程。并在Stack Overflow中搜索许多示例和解释。规范是JSR310。
您可以直接与数据库交换java.time对象。使用符合JDBC 4.2或更高版本的JDBC驱动程序。不需要字符串,也不需要java.sql.*
类。
从哪里获得java.time类?
- Java SE 8、Java SE 9和更高版本
- 内置
- 标准Java API的一部分,带有捆绑实现
- Java 9添加了一些小功能和修复程序
- Java SE 6和Java SE 7
- 大部分Java.time功能都是向后移植到Java 6&7英寸ThreeTen背包
- Android
- java.time类的Android捆绑包实现的后续版本
- 对于早期的Android(<26),ThreeTenABP项目适用于ThreeTen Backport(如上所述)。请参阅如何使用ThreeTenABP…
试试这个
String dt_str = "2000-01-01T13:00:00.000Z";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
try {
Date date = format.parse(dt_str);
System.out.println(date);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
试试这个。
SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SSS'Z'");
Date myDate = myFormat.parse("your date string here");