我一直想弄清楚如何将提取的“ datetime.datetime(YYYY,mm,dd,HH,MM,SS)”格式转换为十进制“ YYYYmm.DDHH”
我已经在下面尝试过代码,但这并不需要我进一步
my_date = datetime.datetime(2016, 2, 28, 13, 50, 36)
def check_date_type(d):
if type(d) is datetime.datetime:
return d
if type(d) is list:
return d[0]
print(check_date_type(my_date))
我期望输出如下。 请注意,2月在预期输出中显示为'02'
201602.2813
答案 0 :(得分:3)
使用strftime
库中的datetime
将返回的日期时间转换为格式化的字符串...
my_date = datetime.datetime(2016, 2, 28, 13, 50, 36)
def check_date_type(d):
if type(d) is datetime.datetime:
return d
if type(d) is list:
return d[0]
print(check_date_type(my_date).strftime('%Y%m.%d%H')) #<----Custom format string
This是strftime格式的很好参考
答案 1 :(得分:0)
不知道为什么要这么做,但是你去了。
import datetime
from time import strftime
my_date = datetime.datetime(2016, 2, 28, 13, 50, 36)
my_date = my_date.strftime("%Y%m.%d%H")
print(my_date)
答案 2 :(得分:0)
@jdub的答案是最干净的,但是如果您想以您的的方式编写,请将其转换为一组字符串,然后根据需要连接字符串:
import datetime
my_date = datetime.datetime(2016, 2, 28, 3, 50, 36)
def add_zero(x):
zerox = str(x) if x>9 else '0'+str(x)
return zerox
def check_date_type(d):
if type(d) is datetime.datetime:
yy = str(d.year)
mm = add_zero(d.month)
dd = add_zero(d.day)
hh = add_zero(d.hour)
nn = add_zero(d.minute)
return yy+mm+dd+':'+hh+nn
if type(d) is list:
return d[0]
print(check_date_type(my_date))