将 JSON 纪元时间转换为本地人类可读日期

     2023-03-24     301

关键词:

【中文标题】将 JSON 纪元时间转换为本地人类可读日期【英文标题】:Converting JSON epoch time to local human readable date 【发布时间】:2019-03-26 17:51:12 【问题描述】:

我正在尝试获取在 Zapier 中提供给我的一些 Stripe 数据,并将其中两个纪元时间转换为人类可读的日期,以便可以轻松读取订阅期。直到几天前,下面的确切代码以前都可以正常工作,现在我收到以下错误:

Traceback (most recent call last):
File "/usr/lib64/python2.7/json/__init__.py", line 251, in dumps
sort_keys=sort_keys, **kw).encode(obj)
File "/usr/lib64/python2.7/json/encoder.py", line 207, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib64/python2.7/json/encoder.py", line 270, in iterencode
return _iterencode(o, 0)
File "/var/runtime/awslambda/bootstrap.py", line 110, in decimal_serializer
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: time.struct_time(tm_year=2018, tm_mon=10, tm_mday=22, tm_hour=14, tm_min=9, tm_sec=58, tm_wday=0, tm_yday=295, tm_isdst=0) is not JSON serializable

这是之前的工作代码:

import ast
import json
import time
data = "amount: 1000
currency: usd
description: None
discountable: True
id: sub_DfoojqxyubarmQ
livemode: True
metadata: 
object: line_item
period: u'start': 1540217398, u'end': 1542895798
plan: u'active': True, u'product': u'prod_fooj56ZAbarmaU', 
u'transform_usage': None, u'name': u'Subscription - Monthly', 
u'aggregate_usage': None, u'created': 1532982748, u'tiers_mode': None, 
u'interval': u'month', u'tiers': None, u'object': u'plan', u'id': 
u'plan_DKMmOfooQEbars', u'currency': u'usd', u'amount': 1000, 
u'interval_count': 1, u'trial_period_days': None, u'livemode': True, 
u'usage_type': u'licensed', u'metadata': u'qb_sub_product': u'8', 
u'nickname': u'Subscription - Monthly', u'statement_descriptor': 
u’SUBSCRIPTION’, u'billing_scheme': u'per_unit'
proration: False
quantity: 1
subscription: None
subscription_item: si_DpfooWbarKUVIh
type: subscription"

#retrieve period data
period_begin = data.find('period:') + 8
period_end = data.find('plan:')

#convert period to JSON
period = ast.literal_eval(data[period_begin:period_end])
json_period = json.dumps(period)
json_period = json.loads(json_period)

#retrieve plan data
plan_begin = data.find('plan:') + 6
plan_end = data.rfind('') + 1

#convert plan to JSON
plan = ast.literal_eval(data[plan_begin:plan_end])
json_plan = json.dumps(plan)
json_plan = json.loads(json_plan)

#period_start and period_end to human readable format
period_start = time.strftime("%-m/%-d/%Y"), time.localtime(json_period['start'])
period_end = time.strftime("%-m/%-d/%Y", time.localtime(json_period['end']))

output = ['json_plan': json_plan, 'json_period': json_period, 'period_start': period_start, 'period_end': period_end]

【问题讨论】:

【参考方案1】:

你有一个错字。括号过早地结束了time.strftime("%-m/%-d/%Y")。您的代码所做的是生成一个 2 值元组:将 now() 格式化为默认的 strftime 格式,并从 epoch 生成 time.localtime

#period_start and period_end to human readable format
period_start = time.strftime("%-m/%-d/%Y", time.localtime(json_period['start']))
period_end = time.strftime("%-m/%-d/%Y", time.localtime(json_period['end']))

【讨论】:

这很尴尬,不知道是如何/何时发生的。谢谢你那双新鲜的眼睛!

将日期从人类可读格式转换为纪元失败

】将日期从人类可读格式转换为纪元失败【英文标题】:Conversionofdatefromhuman-readableformattoepochfails【发布时间】:2021-11-1104:36:55【问题描述】:我想创建一个程序,将特定人类可读格式的日期转换为纪元。到目前为止,我有以下... 查看详情

使用 Moment.js 将人类可读时间转换为 Unix 纪元时间

】使用Moment.js将人类可读时间转换为Unix纪元时间【英文标题】:UseMoment.jstoconverthumanreadabletimetoUnixepochtime【发布时间】:2020-09-2919:43:01【问题描述】:我正在尝试使用Moment.js将人类可读的时间转换为Unix纪元时间。我也想知道。35... 查看详情

将纪元时间戳转换为可读日期不起作用

】将纪元时间戳转换为可读日期不起作用【英文标题】:Convertingepochtimestamptoreadabledatenotworking【发布时间】:2014-11-0501:27:13【问题描述】:我正在尝试使用此代码转换我拥有的时间戳,但输出完全错误,输出为17/01/197016:56:28!!... 查看详情

如何将日期转换为 squid 代理日志的纪元?

】如何将日期转换为squid代理日志的纪元?【英文标题】:HowcanIconvertdatetoepochforsquidproxylog?【发布时间】:2021-12-2904:53:42【问题描述】:大家好,我是一名网络管理员,正在研究如何将人类可读的日期转换为纪元,以便我可以将... 查看详情

以人类可读格式转换纪元时间

】以人类可读格式转换纪元时间【英文标题】:convertingepochtimeinhumanreadableformat【发布时间】:2019-12-0315:33:43【问题描述】:我想将纪元时间转换为人类可读的格式,当我给出随机纪元时间时,例如下面的一个epoch1=datetime.datetime.f... 查看详情

将 UTC 纪元转换为本地日期

】将UTC纪元转换为本地日期【英文标题】:ConvertUTCEpochtolocaldate【发布时间】:2011-06-0515:20:41【问题描述】:我已经为此奋斗了一段时间。我正在尝试将纪元转换为日期对象。纪元以UTC格式发送给我。每当你通过newDate()一个纪元... 查看详情

如何使用 sed 将纪元转换为人类可读的日期时间

】如何使用sed将纪元转换为人类可读的日期时间【英文标题】:Howtousesedtoconvertepochtohumanreadabledatetime【发布时间】:2021-06-2808:03:23【问题描述】:我尝试使用sed和/e选项调用date-d@将纪元转换为人类可读的日期时间,但似乎sed仅在... 查看详情

如何在 python 中将普通时间戳转换为纪元时间戳

】如何在python中将普通时间戳转换为纪元时间戳【英文标题】:HowcanIConvertNormaltimestamptoEpochTimestampinpython【发布时间】:2021-05-1018:42:18【问题描述】:问题1:将人类可读的日期转换为一天开始时的纪元时间戳/时间?例子。如果IN... 查看详情

将人类可读的日期从 Epoch 转换为变量

...【英文标题】:GettinghumanreadabledatefromEpochintovariable【发布时间】:2012-06-1619:10:54【问题描述】:好的,这可能是一个非常基本的问题;但是,我刚刚回到Linux的马鞍上。我有一个变量,它保存一个称为pauseTime的Epoch时间。我需要... 查看详情

将长的 Unix 纪元时间戳转换为实际日期/时间

】将长的Unix纪元时间戳转换为实际日期/时间【英文标题】:ConvertLongofUnixEpochTimestamptoRealDate/Time【发布时间】:2021-02-1920:32:38【问题描述】:我试图找到这个问题的答案,但我发现的来源没有正确转换时间。最初我有一个字符串... 查看详情

如何将纳秒的纪元时间转换为人类可读的?

】如何将纳秒的纪元时间转换为人类可读的?【英文标题】:Howtoconvertepochtimewithnanosecondstohuman-readable?【发布时间】:2013-03-1700:11:52【问题描述】:我有一个以纳秒为单位的纪元时间戳-例如1360287003083988472自1970-01-01以来的纳秒。P... 查看详情

如何将 13 位 unix 纪元时间格式转换为日期时间?

】如何将13位unix纪元时间格式转换为日期时间?【英文标题】:Howtoconverta13digitunixepochtimeformattodatetime?【发布时间】:2020-05-2420:59:34【问题描述】:我正在尝试将包含13位unix纪元时间日志的数据框列转换为人类可读的日期时间日... 查看详情

将纪元转换为人类可读的日期在 python 中不起作用

】将纪元转换为人类可读的日期在python中不起作用【英文标题】:Convertingepochtohuman-readabledatedoesn\'tworkinpython【发布时间】:2021-10-0923:34:27【问题描述】:我正在使用时间模块使用下面的代码将纪元转换为人类可读的日期。importti... 查看详情

将纪元时间更改为可读时​​间并在 python/pandas 中绘图

】将纪元时间更改为可读时​​间并在python/pandas中绘图【英文标题】:Changingepochtimetoreadabletimeandplottinginpython/pandas【发布时间】:2020-05-0923:01:15【问题描述】:我在.csv文件中有库存数据。日期列采用Unix时间。如何将整列转换为... 查看详情

将时间戳数据解析为本地日期和时间的问题

】将时间戳数据解析为本地日期和时间的问题【英文标题】:IssuesParsingTimestampdatatoLocalDateandTime【发布时间】:2021-10-2019:15:02【问题描述】:我在获取存储在JSON文件中的时间戳的本地日期和时间时遇到了一些问题。getData()方法应... 查看详情

在 Mac OSX 上将 unix 纪元时间转换为人类可读的日期 - BSD

】在MacOSX上将unix纪元时间转换为人类可读的日期-BSD【英文标题】:ConvertunixepochtimetohumanreadabledateonMacOSX-BSD【发布时间】:2014-03-2409:49:08【问题描述】:在我的MacOSX上,我的bash脚本有一个纪元时间123439819723。我可以通过date-r123439... 查看详情

使用 Java 将 unix 纪元转换为人类可读时的日期不正确

】使用Java将unix纪元转换为人类可读时的日期不正确【英文标题】:IncorrectdatewhenconvertingunixepochtohumanreadableusingJava【发布时间】:2014-10-1905:35:05【问题描述】:编辑:删除了“*1000”,但日期仍然不正确,但更新了下面的日志以... 查看详情

将纪元时间转换为“真实”日期/时间

】将纪元时间转换为“真实”日期/时间【英文标题】:Convertingepochtimeto"real"date/time【发布时间】:2010-12-1402:42:26【问题描述】:我想要做的是将纪元时间(自1970年1月1日午夜以来的秒数)转换为“实时”时间(m/d/yh:m:s)... 查看详情