【发布时间】:2016-01-28 19:51:51
【问题描述】:
我是 Android 的新开发者,我想反序列化日期值的字符串,并且我正在寻找将转换为 json 的日期反序列化为 /Date(1446063654000)/ 这样的字符串格式 YYYY/MM/ DD。
但我没有找到解决方案。
你能检查一下并告诉我该怎么做吗?
【问题讨论】:
标签: java android json date gson
我是 Android 的新开发者,我想反序列化日期值的字符串,并且我正在寻找将转换为 json 的日期反序列化为 /Date(1446063654000)/ 这样的字符串格式 YYYY/MM/ DD。
但我没有找到解决方案。
你能检查一下并告诉我该怎么做吗?
【问题讨论】:
标签: java android json date gson
你需要使用SimpleDateFormat
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd", Locale.US);
Date date = sdf.parse(string, parsePosition)
如果你使用 Gson 库来解析 Json 字符串,你可以使用:
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.setDateFormat(dateFormat);
Gson gson = gsonBuilder.create();
gson.fromJson(string, YourClass.class);
【讨论】:
/Date(1446063654000)/ 似乎是一个 unix 时间戳。假设您将其作为字符串...
String str = "/Date(1446063654000)/";
...将其转换为日期非常简单,例如,您可以这样做......
long time = Long.parseLong( str.substring(6, str.length() - 2 );
也就是说,取'/Date(之后的字符串部分(6个字符长)直到最后一个),也就是数字部分,然后解析成long。
long 可以变成日期...
Date date = new Date( time );
并且可以将日期格式化为字符串...
String formatted = new SimpleDateFormat("yyyy/MM/dd").format( date );
【讨论】: