作者:必须滴958_534 | 来源:互联网 | 2023-05-24 21:47
如何在python中将YYYY-MM-DD hh:mm:ss格式转换为整数?例如2014-02-12 20:51:14 - >到整数.
我知道如何只转换hh:mm:ss而不是yyyy-mm-dd hh:mm:ss
def time_to_num(time_str):
hh, mm , ss = map(int, time_str.split(':'))
return ss + 60*(mm + 60*hh)
ely..
14
这取决于整数应该编码的内容.您可以将日期转换为之前某个时间的毫秒数.人们经常在1970年1月1日上午12点或1900年等时将其固定,并且从该点开始测量时间为整数毫秒.datetime
模块(或其他类似的模块)将具有为您执行此操作的功能; 只是谷歌转换为毫秒.
如果要对年,月和日进行语义编码,一种方法是将这些组件乘以足够大的数量级值,以便将它们并置在整数位数内:
2012-06-13 - > 20120613 = 10,000*(2012)+ 100*(6)+ 1*(13)
def to_integer(dt_time):
return 10000*dt_time.year + 100*dt_time.month + dt_time.day
例如
In [1]: import datetime
In [2]: %cpaste
Pasting code; enter '--' alone on the line to stop or use Ctrl-D.
:def to_integer(dt_time):
: return 10000*dt_time.year + 100*dt_time.month + dt_time.day
: # Or take the appropriate chars from a string date representation.
:--
In [3]: to_integer(datetime.date(2012, 6, 13))
Out[3]: 20120613
如果您还需要分钟和秒钟,则只需根据需要包含更多数量级以显示数字.
我在遗留系统中经常遇到第二种方法,尤其是从遗留SQL数据库中提取基于日期的数据的系统.
这非常糟糕.您最终编写了大量hacky代码来对齐日期,计算月份或日期偏移,因为它们将以整数格式显示(例如,当您通过12月时将月份重置为1,然后递增年份值),以及锅炉板全部转换为整数格式.
除非这样的约定存在于您正在进行的API的深层次,低级且经过全面测试的部分中,否则每个使用数据的人都可以依赖此整数表示及其所有辅助函数,那么您最终会有很多人在整个地方重写基本的日期处理程序.
将值保留在日期上下文中通常要好得多,例如datetime.date
,尽可能长,以便对它的操作以自然的,基于日期的上下文表示,而不是某个单独的开发人员个人入侵整数.
1> ely..:
这取决于整数应该编码的内容.您可以将日期转换为之前某个时间的毫秒数.人们经常在1970年1月1日上午12点或1900年等时将其固定,并且从该点开始测量时间为整数毫秒.datetime
模块(或其他类似的模块)将具有为您执行此操作的功能; 只是谷歌转换为毫秒.
如果要对年,月和日进行语义编码,一种方法是将这些组件乘以足够大的数量级值,以便将它们并置在整数位数内:
2012-06-13 - > 20120613 = 10,000*(2012)+ 100*(6)+ 1*(13)
def to_integer(dt_time):
return 10000*dt_time.year + 100*dt_time.month + dt_time.day
例如
In [1]: import datetime
In [2]: %cpaste
Pasting code; enter '--' alone on the line to stop or use Ctrl-D.
:def to_integer(dt_time):
: return 10000*dt_time.year + 100*dt_time.month + dt_time.day
: # Or take the appropriate chars from a string date representation.
:--
In [3]: to_integer(datetime.date(2012, 6, 13))
Out[3]: 20120613
如果您还需要分钟和秒钟,则只需根据需要包含更多数量级以显示数字.
我在遗留系统中经常遇到第二种方法,尤其是从遗留SQL数据库中提取基于日期的数据的系统.
这非常糟糕.您最终编写了大量hacky代码来对齐日期,计算月份或日期偏移,因为它们将以整数格式显示(例如,当您通过12月时将月份重置为1,然后递增年份值),以及锅炉板全部转换为整数格式.
除非这样的约定存在于您正在进行的API的深层次,低级且经过全面测试的部分中,否则每个使用数据的人都可以依赖此整数表示及其所有辅助函数,那么您最终会有很多人在整个地方重写基本的日期处理程序.
将值保留在日期上下文中通常要好得多,例如datetime.date
,尽可能长,以便对它的操作以自然的,基于日期的上下文表示,而不是某个单独的开发人员个人入侵整数.