如何将JSON日期格式转换为简单日期格式?

时间:2018-03-24 05:13:39

标签: java json datetime datetime-format datetime-parsing

我收到了像/Date(1521866513877+0530)/这样的JSON格式的日期响应,我希望格式为24/03/2018 10:11:53

3 个答案:

答案 0 :(得分:0)

如果没有本地解析方法,请尝试以下regex模式:

\/Date\((\d+)\+(\d+)\)\/

我不是一个java家伙,但正则表达式无处不在。我看起来日期是毫秒,因此您需要划分1521866513877 / 1000以获取时间戳。这是PHP中的一个示例:

preg_match_all('/\/Date\((\d+)\+(\d+)\)\//i', '/Date(1521866513877+0530)/', $matches);
if ($matches[0]) {
    $timestamp = $matches[1][0];
    $offset = $matches[2][0];

    echo date('m/d/Y H:i:s', (int)$timestamp / 1000);
}

答案 1 :(得分:0)

Gson类可以帮助您序列化这样的格式。默认情况下,它使用SimpleDateFormat对象进行序列化。使用GsonBuilder获取一个新的Gson对象来序列化日期格式,如 24/03/2018 10:11:53

Gson gson = new GsonBuilder()  
  .setDateFormat("dd/MM/yyyy HH:mm:ss")  
  .create();  

答案 2 :(得分:0)

使用正则表达式从字符串中提取单个部分。 13位数是自纪元以来的毫秒数。将其解析为long并将其转换为storage .bucket(bucketName) .file(filename) .acl.readers.addUser(user1) .then(() => { console.log(`Added user ${user1} as an owner on file ${filename}.`); }) .catch(err => { console.error('ERROR:', err); }); (来自Instant的类,即现代Java日期和时间API)。将java.time解析为+0530;这是UTC或GMT之前5小时30分钟的偏移量。将ZoneOffsetInstant合并为ZoneOffset。使用OffsetDateTime对其进行格式化。就是这样。

如果有些部分仍然不知道该怎么做,请使用您的搜索引擎。所有这些都在互联网上的几个地方解释。如果在阅读完教程和API文档并尽力而为之后仍然遇到问题,请在Stack Overflow上提出更具体的问题。请记住包括您的研究报告和最佳尝试以及失败的方法。我们将能够从那里更好地帮助你。