我有这些日期
2016-02-26 12:12:12
2016-02-friday 12:12:12
(这两个日期指的是同一天)
如果我在时间戳中转换第一个,然后以可读格式将其转换回来,那就可以了。
但是如果我在第二个上尝试相同的话,它就不会转换回正确的日子!
这就是我的所作所为:
sTimestamp = time.mktime(
datetime.datetime.strptime(
"2016-02-26 12:12:12",
"%Y-%m-%d %H:%M:%S")
.timetuple())
print("date from timestamp = " +
datetime.datetime.fromtimestamp(int(sTimestamp))
.strftime('%Y-%m-%d %H:%M:%S'))
sTimestamp = time.mktime(
datetime.datetime.strptime(
"2016-02-friday 12:12:12",
"%Y-%m-%A %H:%M:%S")
.timetuple())
print("date from timestamp = " +
datetime.datetime.fromtimestamp(int(sTimestamp)).
strftime('%Y-%m-%d %H:%M:%S'))
两行的输出是:
正如你所看到的那样,第一个回到了26,但是第二个回到了01,原因不明。顺便说一句,01是星期一......
有关我使用python 3.4的信息,我在Windows上。
答案 0 :(得分:1)
第一个问题:
(这两个日期指的是同一天)
不,他们不是。第一个是指2016年2月的最后一个星期五;第二个指的是2016年2月的星期五 a 。
此外,strptime
与数字一起使用,因为"Friday"
之类的字符串并不准确。 Python docs说:
对于时间对象,不应使用年,月和日的格式代码,因为时间对象没有此类值。如果它们仍被使用,则1900代替年份,1代表月和日。
因此,使用"Friday"
之类的不精确值看起来使用相同的默认回退1
。