不管何时何地,只要我们编程时遇到了跟时间有关的问题,都要想到 datetime 和 time 标准库模块,今天我们就用它内部的方法,详解python操作日期和时间的方法。1.将字符串的时间转换为时间戳
代码如下:
方法:a = “2013-10-10 23:40:00″#将其转换为时间数组import timetimearray = time.strptime(a, “%y-%m-%d %h:%m:%s”)#转换为时间戳:timestamp = int(time.mktime(timearray))timestamp == 1381419600
2.格式更改如a = “2013-10-10 23:40:00”,想改为 a = “2013/10/10 23:40:00″方法:先转换为时间数组,然后转换为其他格式
代码如下:
timearray = time.strptime(a, “%y-%m-%d %h:%m:%s”)otherstyletime = time.strftime(“%y/%m/%d %h:%m:%s”, timearray)
3.时间戳转换为指定格式日期方法一:利用localtime()转换为时间数组,然后格式化为需要的格式,如:
代码如下:
timestamp = 1381419600timearray = time.localtime(timestamp)otherstyletime = time.strftime(“%y-%m-%d %h:%m:%s”, timearray)otherstyletime == “2013-10-10 23:40:00”
方法二:
代码如下:
import datetimetimestamp = 1381419600datearray = datetime.datetime.utcfromtimestamp(timestamp)otherstyletime = datearray.strftime(“%y-%m-%d %h:%m:%s”)otherstyletime == “2013-10-10 23:40:00”
4.获取当前时间并转换为指定日期格式方法一:
代码如下:
import time#获得当前时间时间戳now = int(time.time()) ->这是时间戳#转换为其他日期格式,如:”%y-%m-%d %h:%m:%s”timearray = time.localtime(timestamp)otherstyletime = time.strftime(“%y-%m-%d %h:%m:%s”, timearray)
方法二:
代码如下:
import datetime#获得当前时间now = datetime.datetime.now() ->这是时间数组格式#转换为指定的格式:otherstyletime = now.strftime(“%y-%m-%d %h:%m:%s”)
5.获得三天前的时间的方法
代码如下:
import timeimport datetime#先获得时间数组格式的日期threedayago = (datetime.datetime.now() – datetime.timedelta(days = 3))#转换为时间戳:timestamp = int(time.mktime(threedayago.timetuple()))#转换为其他字符串格式:otherstyletime = threedayago.strftime(“%y-%m-%d %h:%m:%s”)注:timedelta()的参数有:days,hours,seconds,microseconds
6.给定时间戳,计算该时间的几天前时间
代码如下:
timestamp = 1381419600#先转换为datetimeimport datetimeimport timedatearray = datetime.datetime.utcfromtimestamp(timestamp)threedayago = datearray – datetime.timedelta(days = 3)#参考5,可以转换为其他的任意格式了
7、用python计算昨天和明天的日期
代码如下:
>>> import datetime #导入日期时间模块>>> today = datetime.date.today() #获得今天的日期>>> print today #输出今天日期2014-01-04 >>> yesterday = today – datetime.timedelta(days=1) #用今天日期减掉时间差,参数为1天,获得昨天的日期>>> print yesterday2014-01-03 >>> tomorrow = today + datetime.timedelta(days=1) #用今天日期加上时间差,参数为1天,获得明天的日期>>> print tomorrow2014-01-05 >>>>>> print “昨天:%s, 今天:%s, 明天:%s” % (yesterday, today, tomorrow) #字符串拼接在一起输出,这3天的日期
昨天:2014-01-03, 今天:2014-01-04, 明天:2014-01-058、python里使用time模块来获取当前的时间
代码如下:
#!/usr/bin/pythonimport timeprint (time.strftime(“%h:%m:%s”))## 12 hour format ##print (time.strftime(“%i:%m:%s”))#:输出#18:11:30#6:11:30
9、打印出当前的日期的python程序
代码如下:
!/usr/bin/python
import time## dd/mm/yyyy格式print (time.strftime(“%d/%m/%y”))
#输出:11/03/2014
10、使用datetime模块来获取当前的日期和时间
代码如下:
#!/usr/bin/pythonimport datetimei = datetime.datetime.now()print (“当前的日期和时间是 %s” % i)print (“iso格式的日期和时间是 %s” % i.isoformat() )print (“当前的年份是 %s” %i.year)print (“当前的月份是 %s” %i.month)print (“当前的日期是 %s” %i.day)print (“dd/mm/yyyy 格式是 %s/%s/%s” % (i.day, i.month, i.year) )print (“当前小时是 %s” %i.hour)print (“当前分钟是 %s” %i.minute)print (“当前秒是 %s” %i.second)
附:日期和时间的格式化参数
代码如下:
%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 时区名称,如果不能得到时区名称则返回空字符。%% 百分号