簡體   English   中英

Python中的日期時間

[英]Datetimes in Python

我有兩個約會

'2017-03-10 19:01:27'
'2017-03-11 07:35:55'

我希望有一天能有所作為。 如何在考慮時區的情況下做到這一點?

因為我們不知道這些日期的時區。 我是Python新手

我有:

from_zone = tz.tzutc()
to_zone = tz.tzlocal()

date_first = datetime.strptime(args[0], time_format)
date_second = datetime.strptime(args[1], time_format)

rep_date_first = date_first.replace(tzinfo=from_zone)
rep_date_second = date_second.replace(tzinfo=from_zone)

timezone_date_first = rep_date_first.astimezone(to_zone)
timezone_date_second = rep_date_second.astimezone(to_zone)

day = timezone_date_first.day - timezone_date_second.day

一天還給我0,如何解決? 請幫我

通過更改時區,您可能會在日期中增加或減去足夠的時間,以使它們在同一天結束。 在將它們從字符串轉換時,您可能應該假設一個時區–或僅將它們保留為朴素的datetime對象。

>>> d1 = '2017-03-10 19:01:27'
>>> d2 = '2017-03-11 07:35:55'
>>> date_first = datetime.strptime(d1, '%Y-%m-%d %H:%M:%S')
>>> date_second = datetime.strptime(d2, '%Y-%m-%d %H:%M:%S')
>>> date_first.day
10
>>> date_second.day - date_first.day
1

arrow模塊是每個使用日期的人的好朋友,您可以輕松地實現轉變。

import arrow
dt = arrow.get('2017-03-10 19:01:27')
dt = dt.replace(tzinfo='Europe/Warsaw')
dt2 = dt.shift(days=-1)
assert dt2.isoformat() == '2017-03-09T19:01:27+01:00'

您的要求有點陌生: I would like to get the difference one day並且您的代碼不能獨立運行( args[0] ),但是我認為您可以假設日期在同一時區。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM