如何将datetime.datetime(YYYY,mm,dd,HH,MM,SS)格式转换为十进制YYYYmm.DDHH

时间:2019-08-08 18:08:59

标签: python-3.x

我一直想弄清楚如何将提取的“ 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

3 个答案:

答案 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))