python - 如何在 Python 中解析 Microsoft JSON 日期?
问题描述
我必须读取一个 JSON 文件,它的日期字段格式如下
"MyDate": "/Date(1603284014088)/"
,
我找到了一些用其他语言(JavaScript、Kotlin)解析它的例子,但在 Python 中没有。
我可以在此 SCOTT HANSELMAN 的帖子中找到它们是自 Unix 纪元开始以来的毫秒数,有时带有时区。所以我可以写一个简单的函数来解码它。
import re
from datetime import datetime, timedelta
def decode_date (encoded_date):
mask = "\/Date\(([0-9]*)\)"
offset = datetime(1970, 1, 1)
my_matchs = re.match(mask, encoded_date).groups()
if len(my_matchs) == 1:
return datetime(1970, 1, 1) + timedelta(milliseconds=int(my_matchs[0]))
else:
return None
encoded = "/Date(1603284014088)/"
print (decode_date(encoded))
这个函数不能用时区解析日期,因为我很懒:),我的问题是 - 是否有一些库可以在 Python 中开箱即用地解析它?
解决方案
鉴于您已经能够使用 RegEx 提取日期,请尝试以下代码进行转换:
import datetime
s = '1603284014088'
fmt = "%Y-%m-%d %H:%M:%S"
# Local time
t = datetime.datetime.fromtimestamp(float(s)/1000.)
print (t.strftime(fmt))
# UTC time
t_utc = datetime.datetime.utcfromtimestamp(float(s)/1000.)
print (t_utc.strftime(fmt))
推荐阅读
- c# - 尝试通过按下控制器按钮来激活 UNITY 中的动画触发器,在统一上显示多个错误,但在编译器上却没有
- python - 姜戈。如何获取 JOIN 查询和 GROUP BY 中的所有字段
- node.js - 如何为数组内的数组保存/更新/提取信息?
- python - 使用 PyTorch 从头开始的线性分类器问题
- android - 约束布局 2.0.1 constraintDimensionRatio Buggy
- c# - 透明状态栏隐藏了我的导航菜单
- language-agnostic - 产生无法满足的测试问题
- xml - Powershell 5.1:无法使用 Get-Unique 对提取的 XML 属性名称进行排序
- javascript - NodeJS - 如何获得 URL 的响应?
- apache-spark - 如何将 pyspark 应用程序与要使用 spark-submit 提交的 java 依赖项捆绑在一起