python time&datetime

time&datetime

time与datetime

在python中通常有3种方式表示时间
1. 时间戳
2. 格式化的时间字符串
3. 元组(struct_time)共九个元素

时间戳

使用time模块需要先导入模块

import time

输出时间戳,一个浮点数单位是秒,从1970.1.1到现在时间的秒数

time.time()  #1497237703.2724092

格式化的时间字符串

元组(struct_time)

time模块的属性

time.localtime()#输出:time.struct_time(tm_year=2017, tm_mon=6, tm_mday=12, tm_hour=11, tm_min=27, tm_sec=4, tm_wday=0, tm_yday=163, tm_isdst=0) isdst是否是夏令時,世界标准时间UTC,存在的意义在于,地球分好多个时区,每个时区都有自己的时间,统一标准就可以调整全世界的步调,中国北京UTC+8

time.timezone # 28800 查看与UTC的差值

#28800/3600-=8

time.altzone#函数返回格林威治西部的夏令时地区的偏移秒数。如果该地区在格林威治东部会返回负值(如西欧,包括英国)。对夏令时启用地区才能使用。



time.daylight#你是否使用了夏令时

time模块的方法

time.time()#获取时间戳
time.sleep(2)#程序睡几秒
time.gmtime()# 函数将一个时间戳转换为UTC时区(0时区)的struct_time,可选的参数sec表示从1970-1-1以来的秒数。其默认值为time.time(),函数返回time.struct_time类型的对象。(struct_time是在time模块中定义的表示时间的对象)。
time.localtime()#将本地时间戳转成struct_time
time.mktime()#将struct_time转成时间戳
time.strftime("%Y-%m-%d %H:%M:%S",struct_time对象)#将struct_time转成格式化时间
time.strptime("2017-06-12 14:08:12","%Y-%m-%d %H:%M:%S")#直接输出Out[14]: time.struct_time(tm_year=2017, tm_mon=6, tm_mday=12, tm_hour=14, tm_min
=8, tm_sec=12, tm_wday=0, tm_yday=163, tm_isdst=-1)一个
struct_time对象,参数位置要对应。
time.asctime()#'Mon Jun 12 14:40:49 2017'传入的是元组
time.ctime(seconds)#'Mon Jun 12 14:43:01 2017'传入的是秒

struct_time对象操作

x=time.localtime()
x.tm_year

格式参照

%a    本地(locale)简化星期名称    
%A 本地完整星期名称
%b 本地简化月份名称
%B 本地完整月份名称
%c 本地相应的日期和时间表示
%d 一个月中的第几天(01 - 31)
%H 一天中的第几个小时(24小时制,00 - 23)
%I 第几个小时(12小时制,01 - 12)
%j 一年中的第几天(001 - 366)
%m 月份(01 - 12)
%M 分钟数(00 - 59)
%p 本地am或者pm的相应符 一
%S 秒(01 - 61) 二
%U 一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。 三
%w 一个星期中的第几天(0 - 6,0是星期天) 三
%W 和%U基本相同,不同的是%W以星期一为一个星期的开始。
%x 本地相应日期
%X 本地相应时间
%y 去掉世纪的年份(00 - 99)
%Y 完整的年份
%Z 时区的名字(如果不存在为空字符)
%% ‘%’字符

datetime()

导入

import datetime

日期:

datetime.date

时间

datetime.time

datetime.datetime

print(datetime.datetime.now()) #返回 2016-08-19 12:47:03.941925

print(datetime.date.fromtimestamp(time.time()) ) # 时间戳直接转成日期格式 2016-08-19

print(datetime.datetime.now() )

print(datetime.datetime.now() + datetime.timedelta(3)) #当前时间+3天

print(datetime.datetime.now() + datetime.timedelta(-3)) #当前时间-3天

print(datetime.datetime.now() + datetime.timedelta(hours=3)) #当前时间+3小时

print(datetime.datetime.now() + datetime.timedelta(minutes=30)) #当前时间+30分

c_time = datetime.datetime.now()

print(c_time.replace(minute=3,hour=2)) #时间替换

原文地址:https://www.cnblogs.com/dcotorbool/p/7001752.html