600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > python 日期 时间 时间戳的转换 日期加减

python 日期 时间 时间戳的转换 日期加减

时间:2019-04-19 10:25:26

相关推荐

python 日期 时间 时间戳的转换 日期加减

目录

一、前言二、处理日期三、处理时间四、同时处理日期和时间五、时间戳相关六、处理字符串格式的时间

一、前言

python中处理时间相关的库为datetime及time,均为内置库,绝大部份有关时间的操作都可以通过这两个库完成,如日期格式化、日期加减等。

二、处理日期

获取当前日期

import datetime# 默认格式 yyyy-mm-ddprint(datetime.date.today())# -05-20

手动创建日期

# 创建日期,默认格式 yyyy-mm-dddt = datetime.date(, 5, 20)print(dt)# -05-20# 获取年、月、天dt.yeardt.monthdt.day

求两个日期间相差的天数

date1 = datetime.date(, 5, 20)date2 = datetime.date(, 5, 15)diff = date1 - date2print(diff.days)# 5

向前或后推多少天

dt = datetime.date.today()dt_ = dt - datetime.timedelta(days=1)# 等价的写法# dt_ = dt + datetime.timedelta(days=-1)print(dt_)# -05-19

日期格式化

需要用到strftime()方法,其返回一个格式化后的字符串

%d 指的是一个月中的某一天。如-5-20中, %d 返回 20。

%m 指的是一年中的某个月,注意是小写的m。

%Y 指的是年。字母 Y是大写的。

%y 指的是两位数格式的年份。在-5-20中,%y 返回 23。

%a 返回工作日的前三个字母,如 Sun ;

%A 返回工作日的完整名称,如 Sunday;

%b 返回月份的前三个字母,如 Oct ;

%B 返回月份的完整名称,如 October;

dt = datetime.date.today()print(dt.strftime("%Y/%m-%d"))# /05-20print(dt.strftime("%B---%Y-%m-%d")) # May----05-20

将字符串格式的日期转换为日期对象

from datetime import datetimedate_string = "0809"format = "%Y%m%d" #specifify the format of the date_string.dt = datetime.strptime(date_string, format)

三、处理时间

获取当前时间

import time# 当前日期和时间current_time = time.ctime() print(current_time)# Sat May 20 23:01:20 # 只返回当前时间print(time.strftime("%H:%M:%S"))# 返回一个字符串 22:58:32

手动创建一个time对象

t = datetime.time(21, 2, 3)t.hourt.minutet.second

时间格式化

%I 将 24 小时时间格式转换为 12 小时格式。

%p 根据时间值返回 AM PM。

%H 返回时间值的小时数。

%M 返回时间值的分钟数,注意是大写的M,日期格式化中月份的小写的m。

%S 返回时间值的秒数。

print(t.strftime("%I"))# 09print(t.strftime("%I:%M:%S"))# 09:02:03

四、同时处理日期和时间

#获取当前日期和时间,格式 yyyy-mm-dd hh:mm:sstime = datetime.datetime.now()print(time)dt = datetime.datetime(, 5, 20, 20, 25, 22)print(dt)print(dt.strftime("%Y/%m/%d %H:%M:%S"))# /05/20 20:25:22

五、时间戳相关

时间戳是指格林威治时间1970年01月01日00时00分00秒开始计算所经过的秒数,是一个浮点数。

获取时间戳

import time# 获取当前时间戳print(time.time())# 获取指定时间对应的时间戳dtime = datetime.datetime(, 5, 20, 20, 25, 22)un_time = time.mktime(dtime.timetuple())print(un_time)

时间戳转日期

untime = 17845855722times = datetime.datetime.fromtimestamp(untime)print(times)# 2535-07-07 14:08:42

六、处理字符串格式的时间

tss1 = '-05-20 11:2:03'# 转为时间数组timeArray = time.strptime(tss1, "%Y-%m-%d %H:%M:%S")# time.struct_time(tm_year=, tm_mon=5, tm_mday=20, tm_hour=11, tm_min=2, tm_sec=3, tm_wday=5, tm_yday=140, tm_isdst=-1)print(timeArray)# timeArray可以调用tm_year等print(timeArray.tm_year) # # 转为时间戳timeStamp = int(time.mktime(timeArray))print(timeStamp) # 1684551723

其中timeArray为一个结构体,其属性如下:

tm_year (including century, e.g. 1998)

tm_mon (1-12)

tm_mday (1-31)

tm_hour (0-23)

tm_min (0-59)

tm_sec (0-59)

tm_wday 一周中的第几天,注意周一为第0天。

tm_yday 一年中的第多少天

DST 是否为夏令时间,一般用不上。

时间戳转timeArray,以下两种方式等价。

time.localtime()time.localtime(time.time())

参考文献:

Python 日期和时间函数使用指南

Python time和datetime时间戳和时间字符串相互转换

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。