本地时间转utc时间_简道云API 6: 日期时间转北京时间的类方法

899b11362a5600548f7493c8fc4756a7.png

在简道云API编写中,从简道云日期时间字段中读到的数值,是UTC国际时。:UTC是国际时,UTC+8就是国际时加八小时,是东八区时间,也就是北京时间。问题:1.我经常用20201014+其它值,形成唯一值字段,在用API进行转换的时候,必须先把UTC时间转换成北京时间,否则会出现错误。2.如果把简道云表单备份到mysql表单中时,也需要把UTC时间转换成北京时间,否则mysql中会出现日期数值不准的情况。我书写的类方法:
# 转换成北京时间,可备份到mysql中def get_local_time(self, utc_datetime):    if utc_datetime is not None:        import datetime, time        utc = utc_datetime        UTC_FORMAT = '%Y-%m-%dT%H:%M:%S.%fZ'        utc_time = datetime.datetime.strptime(utc, UTC_FORMAT)        local_time = utc_time + datetime.timedelta(hours = 8)        # print("北京时间:", local_time)    else:        local_time = ""    return local_time# 把日期变为20201220这样的字符串# 先把取得的简道云日期加上8,然后再进行处理def get_YYYYMMDD(self, utc_datetime):    if utc_datetime is not None:        local_time = self.get_local_time(utc_datetime)        riqi1 = local_time.year, '%02d' % local_time.month, '%02d' % local_time.day        # print(riqi1)        YYYYMMDD = (str(riqi1[0]) + riqi1[1] + riqi1[2])        # print("北京时间的字符格式:", YYYYMMDD)    else:        YYYYMMDD = ""    return YYYYMMDD# 这个是把上面两个方法合为一个方法def get_localtime_and_YYYYMMDD(self, utc_datetime):    if utc_datetime is not None:        local_time = self.get_local_time(utc_datetime)        riqi1 = local_time.year, '%02d' % local_time.month, '%02d' % local_time.day        # print(riqi1)        YYYYMMDD = (str(riqi1[0]) + riqi1[1] + riqi1[2])        # print("北京时间的字符格式:", YYYYMMDD)        localtime_and_YYYYMMDD = {'local_time': local_time, 'YYYYMMDD': YYYYMMDD}        # print(localtime_and_YYYYMMDD)    else:        localtime_and_YYYYMMDD = {'local_time': "", 'YYYYMMDD': ""}    return localtime_and_YYYYMMDD
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值