在这里,我遇到了以Unix格式返回时间的局面。
我有这个功能:
def get_today_date():
nowDate = str(datetime.datetime.utcnow().date())
unix_date = time.mktime(datetime.datetime.strptime(nowDate, "%Y-%m-%d").timetuple())
return (unix_date)
当我打印“ nowDate”的值时很简单->它给了我想要的正确值(例如:UTC 7/29/2018 00:00:00),这是正确的。但是,当我将格式从Unix时间戳更改为日期格式并仅获得日期而不带时间时,它给了我(2018/7/28)。
我已经将unix中的值进行了检查,它给了我(7/28/2018 21:00:00)。为什么?
我的笔记本电脑处于UTC +3时区。
转换时出现问题了吗?还是笔记本电脑内部错误导致输出错误?
答案 0 :(得分:0)
如果要查找今天的日期/时间,请使用datetime.datetime.now()
,如果只需要日期,请使用datetime.datetime.today()
,它将自动转换为您的时区。
如果您使用基于UTC
的功能,则会获得3个小时的位置偏移,有时这可能会导致时间为前一天的21:00,而不是下一天的午夜-相当合理=)
您可以使用以下方法:
utcnow = datetime.datetime.utcnow()
midnight = time.mktime( datetime.datetime( utcnow.year, utcnow.month, utcnow.day).timetuple() )