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 时区名称,如果不能得到时区名称则返回空字符。
%% 百分号

 

posted @ 2019-02-12 17:17  榴莲丿丶  阅读(1317)  评论(0编辑  收藏  举报