我想将给定的世界时(UT)转换为本地时间(LT)。这样,该功能会在检查24小时后自动增加一天。我尝试了各种代码。我成功转换了时间,但无法在循环中将其增加一定的持续时间。
答案 0 :(得分:0)
尝试以下代码:
>>> from datetime import datetime
>>> import pytz
>>> dt = datetime.utcnow()
>>> dt.astimezone(pytz.timezone('Europe/Paris'))
datetime.datetime(2019, 5, 28, 4, 44, 12, 778393, tzinfo=<DstTzInfo 'Europe/Paris' CEST+2:00:00 DST>)
>>> print(dt.astimezone(pytz.timezone('Europe/Paris')))
2019-05-28 04:44:12.778393+02:00
>>>
答案 1 :(得分:0)
我是python编码的新手,我尝试了以下代码将给定的世界时(UT)转换为可以正常工作的本地时间(LT)。但是我想在从开始LT时间到结束LT时间的循环中以指定的持续时间浮点数(例如1.036秒)增加日期和时间。这样的一天会在24小时后增加。
>>>startutc= '2019-03-25 14:26:18' # Start UTC in String format
>>>endutc= '2019-03-26 14:26:18' # End UTC in String format
>>>utc_fmt = '%Y-%m-%d %H:%M:%S'
>>>local_fmt = '%Y-%m-%d %H:%M:%S'
>>>local_string1 = utc_str_to_local_str(startutc, utc_fmt, local_fmt)
>>>local_string2 = utc_str_to_local_str(endutc, utc_fmt, local_fmt)
>>>ls1=datetime.strptime(local_string1, '%Y-%m-%d %H:%M:%S')
>>>ls2=datetime.strptime(local_string2, '%Y-%m-%d %H:%M:%S')
>>>t2= np.array([ls1+timedelta(seconds=i) for i in range(0,scans)])
>>>t = date2num(t2)
Using function I found somewhere on stack overflow:
>>>def utc_str_to_local_str(utc_str: str, utc_format: str, local_format: str):
"""
>>>:param utc_str: UTC time string
>>>:param utc_format: format of UTC time string
>>>:param local_format: format of local time string
>>>:return: local time string
>>>"""
>>>temp1 = datetime.strptime(utc_str, utc_format)
>>>temp2 = temp1.replace(tzinfo=timezone.utc)
>>>local_time = temp2.astimezone()
>>>return local_time.strftime(local_format)