如何将格式为yyyymmdd的日期列表转换为序列号?例如,如果我有这个日期列表:
t = [1898-10-12 06:00,1898-10-12 12:00,1932-09-30 08:00,1932-09-30 00:00]
如何将每个日期转换为序列号?我目前正在使用datetime toordinal()命令,但是每个日期都被舍入为相同的序列号。我怎样才能把相同的日期和不同的时间变成不同的数字呢?你知道吗
列表中的时间是日期时间。日期时间数字。我试着做:
thurser = []
for i in range(len(t)):
thurser.append(t[i].toordinal())
但我没有把序列号当成浮点数。你知道吗
如果我的理解有误,请告诉我,我尝试了以下操作,并为列表中的每个值给出了不同的数字。
我修改了
t = ['1898-10-12 06:00','1898-10-12 12:00','1932-09-30 08:00','1932-09-30 00:00']
使用
t = [datetime.datetime(1898, 10, 12, 6, 0), datetime.datetime(1898, 10, 12, 12, 0), datetime.datetime(1932, 9, 30, 8, 0), datetime.datetime(1932, 9, 30, 0, 0)]
正如评论中提到的,它是日期时间。日期时间.
我正在考虑从给定日期开始的总毫秒数来生成一个数字。
所以在上述日期之前的日期会给出负值。但是不同的价值观。你知道吗
输出:
^{} 只考虑datetime对象的'date'部分,而不考虑时间。^{} 也一样-它只有一个日期部分。列表中的前2个和后2个元素的datetimes在同一个日期但在不同的时间,而
.toordinal
会忽略这些。因此,.toordinal
将为这些日期相同的日期时间提供相同的值。你知道吗一般来说,解决方法是计算日期与预先确定/固定日期之间的差值。我使用的是
datetime.datetime(1, 1, 1)
,最早的datetime,所以所有的delta都是正值:如果你喜欢整数而不是浮点数,那么用秒代替天:
在第二个示例中,要恢复原始值:
相关问题 更多 >
编程相关推荐