{
"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
}
] } 请问任何人请帮助如何将json字符串时间转换为android中的时间格式。我试图使用简单的日期格式SimpleDateFormat进行转换(" yyyy-mm-ddTh:m:s");但它不起作用。非常感谢任何帮助。
答案 0 :(得分:3)
Instant.parse( "2016-05-27T08:17:43.121Z" )
json字符串时间
没有“JSON时间”这样的东西。你所拥有的是标准ISO 8601格式的字符串。
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 8及更高版本中。这些类取代了麻烦的旧legacy日期时间类,例如java.util.Date
,Calendar
和& SimpleDateFormat
现在位于Joda-Time的maintenance mode项目建议迁移到java.time类。
要了解详情,请参阅Oracle Tutorial。并搜索Stack Overflow以获取许多示例和解释。规范是JSR 310。
您可以直接与数据库交换 java.time 对象。使用符合JDBC driver或更高版本的JDBC 4.2。不需要字符串,不需要java.sql.*
类。
从哪里获取java.time类?
答案 1 :(得分:1)
试试这个
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();
}
答案 2 :(得分:1)
试试这个。
SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SSS'Z'");
Date myDate = myFormat.parse("your date string here");