python获取时间,自定义的时间格式,时间戳,十六进制时间类型输出

python获取时间,此文使用到的两个库:IDE-PyCharm

import time
import datetime

获取当前日期和时间:

now_tm = datetime.datetime.now()
print(now_tm)

可以格式化想要的日期格式:

now_tm = (datetime.datetime.now().strftime('%Y%m%d%H%M%S'))
print(now_tm)  # 输出秒级的时间-年月日时分秒

  格式化可以参考格式参数

获取当前时间并输出时间戳数据类型:

now_tm = (datetime.datetime.now().strftime('%Y%m%d%H%M%S'))
time_array = time.strptime(now_tm, '%Y%m%d%H%M%S')
return_tm = str(int(time.mktime(time_array)))
print(return_tm)

将时间以十六进制输出:

now_tm = (datetime.datetime.now().strftime('%Y%m%d%H%M%S'))
time_array = time.strptime(now_tm, '%Y%m%d%H%M%S')
stamp_tm = int(time.mktime(time_array))
return_tm = hex(stamp_tm)[2:]
print(return_tm)

在当前时间,增加或者减少时间可以使用:datetime.timedelta()方法

return_tm = (datetime.datetime.now() + datetime.timedelta(days=1)).strftime('%Y%m%d%H%M%S')  # 获取当前时间加上一天的时间

附自定义方法代码:获取当前时间,可以增减或者减少时间,同时可以转换需要的时间类型

def get_encryption_time(day="0", hour="0", minute="0", second="0", get_time_type=None):
    if day != "0" or minute != "0" or hour != "0" or second != "0":
        day = int(day)
        hour = int(hour)
        minute = int(minute)
        second = int(second)
        if get_time_type == "time-stamp":
            now_tm = (datetime.datetime.now() + datetime.timedelta(days=day, hours=hour, minutes=minute,
                                                                      seconds=second)).strftime('%Y%m%d%H%M%S')
            time_array = time.strptime(now_tm, '%Y%m%d%H%M%S')
            return_tm = str(int(time.mktime(time_array)))
        else:
            return_tm = (datetime.datetime.now() + datetime.timedelta(days=day, hours=hour, minutes=minute,
                                                                      seconds=second)).strftime('%Y%m%d%H%M%S')
    else:
        if get_time_type == "time-stamp":
            now_tm = (datetime.datetime.now().strftime('%Y%m%d%H%M%S'))
            time_array = time.strptime(now_tm, '%Y%m%d%H%M%S')
            return_tm = str(int(time.mktime(time_array)))
        else:
            return_tm = (datetime.datetime.now().strftime('%Y%m%d%H%M%S'))
    return return_tm


print(get_encryption_time())
print(get_encryption_time(get_time_type="time-stamp", second="-1"))
print(get_encryption_time(get_time_type="time-stamp"))
print(get_encryption_time(get_time_type="time-stamp", second="1"))

  该方法使用了int()函数转化,传入参数时,格式必须符合要求,改进方法可以增加try...except

格式参数:

%a 星期几的简写

%A 星期几的全称

%b 月分的简写

%B 月份的全称

%c 标准的日期的时间串

%C 年份的后两位数字

%d 十进制表示的每月的第几天

%D 月/天/年

%e 在两字符域中,十进制表示的每月的第几天

%F 年-月-日

%g 年份的后两位数字,使用基于周的年

%G 年分,使用基于周的年

%h 简写的月份名

%H 24小时制的小时

%I 12小时制的小时

%j 十进制表示的每年的第几天

%m 十进制表示的月份

%M 十时制表示的分钟数

%n 新行符

%p 本地的AM或PM的等价显示

%r 12小时的时间

%R 显示小时和分钟:hh:mm

%S 十进制的秒数

%t 水平制表符

%T 显示时分秒:hh:mm:ss

%u 每周的第几天,星期一为第一天 (值从0到6,星期一为0)

%U 第年的第几周,把星期日做为第一天(值从0到53)

%V 每年的第几周,使用基于周的年

%w 十进制表示的星期几(值从0到6,星期天为0)

%W 每年的第几周,把星期一做为第一天(值从0到53)

%x 标准的日期串

%X 标准的时间串

%y 不带世纪的十进制年份(值从0到99)

%Y 带世纪部分的十制年份

%z,%Z 时区名称,如果不能得到时区名称则返回空字符。

%% 百分号