同福

Python处理日期和时间【20201016】

介绍

介绍

福哥今天给大家系统的讲一讲Python中对日期和时间的处理的技巧,在python中处理日期和时间需要用到time和datetime软件包,这两个软件包是内建的不需要单独安装,可以直接import进来使用。

在程序里获取时间实际上就是得到运行程序的电脑或者服务器的时间,也就是说如果将电脑或者服务器的时间更改了,运行程序得到的时间也会变化。

我们描述时间有两种方式,一种是特定的某一时刻的时间,例如:2021/3/8 21:56:28,另外一种是相对时间,例如:昨天、明天、上周、下个月、明年等等。在程序里面描述一个特定时间可以直接通过字符串指定,描述一个相对时间就需要在当前时间的基础之上进行偏移获得了。

教程

当前时间

获取当前时间

import time

print ("当前时间: " + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))

a1a78e90445bcf6c.jpg

时间格式

这里福哥给出time.strftime的格式说明

  • %y,两位数的年份

  • %Y,四位数的年份

  • %m,两位数月份

  • %d,月内中的一天

  • %H,24小时制小时数

  • %I,12小时制小时数(01-12)

  • %M,两位数分钟数

  • %S,两位数秒

  • %a,本地简化星期名称

  • %A,本地完整星期名称

  • %b,本地简化的月份名称

  • %B,本地完整的月份名称

  • %c,本地相应的日期表示和时间表示

  • %j,三位数年内的一天

  • %p,自动判断显示AM或PM

  • %U,两位数一年中的星期数,星期天为星期的开始

  • %w,一位数星期,星期天为星期的开始

  • %W,两位数一年中的星期数,星期一为星期的开始

  • %x,本地相应的日期表示

  • %X,本地相应的时间表示

  • %Z,当前时区的名称

  • %%,“%”

时间戳

计算时间戳使用time.mktime实现,福哥给出两个例子

import time
import datetime

print (time.mktime(time.localtime()))
print (time.mktime(datetime.datetime.now().timetuple()))

c9b01a53fdf56352.jpg

时间偏移

可以通过datetime.timedelta计算时间的偏移量,通过这个可以实现在当前时间基础上进行“加”或“减”操作,实现时间偏移处理

月份偏移,因为每年十二个月的天数都不尽相同,所以并不支持对于monthes的操作

年份偏移,因为年份会有闰年的情况,所以并不支持对于years的操作

昨天的现在

将时间向前(过去)偏移一天

import datetime

yesterday = datetime.datetime.now() + datetime.timedelta(days=-1)
print ("昨天的现在: " + yesterday.strftime("%Y-%m-%d %H:%M:%S"))

6b535653dc7fe215.jpg

8小时之后

将时间向后(未来)偏移8小时

import datetime

yesterday = datetime.datetime.now() + datetime.timedelta(hours=8)
print ("8小时之后: " + yesterday.strftime("%Y-%m-%d %H:%M:%S"))

bbfdc8a59d4d42a0.jpg

时间解析

可以针对一个字符串进行解析并生成time对象,而后就可以使用strftime格式化,或者进行“加”或“减”处理

举几个例子

import time
import datetime

print (time.strptime("2020-10-01 12:59:59", "%Y-%m-%d %H:%M:%S"))
print (time.strptime("2020-10-01", "%Y-%m-%d"))
print (time.strptime("12:59:59", "%H:%M:%S"))

fa3250996ab97951.jpg

总结

学会日期时间的处理之后,在编程的时候就可以轻松自如地打印时间、修改时间、加工时间了。