java - 在java上将epoch json格式字符串转换为日期
问题描述
我有一个从服务收到的字符串是一个日期,这个日期有这个格式"/Date(1607490140063-0600)/"
是一个字符串,现在我需要在 java 上从一个字符串转换为日期格式,我尝试了不同的方法但没有工作
String endTime = getPunchTime();
SimpleDateFormat timeFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss Z");
Date d2 = timeFormat.parse(endTime);
解决方案
编写解析值的辅助方法,并使用正则表达式解析文本,例如:
static OffsetDateTime parseJsonDate(String s) {
Pattern p = Pattern.compile("/Date\\((-?\\d+)([+-]\\d{4})\\)/");
Matcher m = p.matcher(s);
if (! m.matches())
throw new DateTimeParseException("Not a valid JSON Date string: " + s, s, 0);
return Instant.ofEpochMilli(Long.parseLong(m.group(1))).atOffset(ZoneOffset.of(m.group(2)));
}
测试
System.out.println(parseJsonDate("/Date(1607490140063-0600)/"));
输出
2020-12-08T23:02:20.063-06:00
推荐阅读
- php - 无法让 oAuth 与 Laravel 和 BigCommerce 应用程序一起使用
- xaml - 如何从网格的第二行开始包装文本块?
- python - 在 Python 中单击隐藏的输入 Selenium
- r - 如何使用 R 中的多边形 shapefile 裁剪图像?
- javascript - 在电子无法连接到 URL 时设置占位符图像/HTML
- r - R 光栅:裁剪后的光栅与原始光栅的颜色(亮度)不同?
- javascript - scrollIntoView 在启动时加载
- cordova - 科尔多瓦运行 android 以退出代码 1 退出
- javascript - D3 从 .onclick 打开引导模式
- rapidjson - 使用 PrettyWriter 将 rapidjson 文档写入文件