Python 日期和时间

Python 日期和时间

Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能。

Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间。

时间间隔是以秒为单位的浮点小数。

每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。

时间戳单位最适于做日期运算。但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,UNIX和Windows只支持到2038年。

 

在很多时候Python函数用一个元组装起来的9组数字处理时间

 

 

 

 

 time 模块的 strftime 方法来格式化日期

 import time
 print(time.strftime('%Y',time.localtime()))    #获取完整年份
 print(time.strftime('%y',time.localtime()))    #获取简写年份
 print(time.strftime('%m',time.localtime()))    #获取月
 print(time.strftime('%d',time.localtime()))   #获取日
 print(time.strftime('%Y-%m-%d',time.localtime()))    #获取年-月-日
2017-10-18

 print(time.strftime('%H',time.localtime()))   #获取时,24小时制
print(time.strftime('%l',time.localtime()))   #获取时,12小时制
 print(time.strftime('%M',time.localtime()))   #获取分
 print(time.strftime('%S',time.localtime()))   #获取秒
 print(time.strftime('%H:%M:%S',time.localtime()))   #获取时:分:秒
16:34:28

 print(time.strftime('%a',time.localtime()))    #本地简化星期
Wed
 print(time.strftime('%A',time.localtime()))    #本地完整星期
Wednesday
 print(time.strftime('%b',time.localtime()))    #本地简化月份
Oct
 print(time.strftime('%B',time.localtime()))   #本地完整月份
October
 print(time.strftime('%c',time.localtime()))    #本地日期和时间表示
Wed Oct 18 16:37:46 2017

 print(time.strftime('%j',time.localtime()))   #一年中的第几天
 print(time.strftime('%p',time.localtime()))   #P.M等价符
PM
 print(time.strftime('%U',time.localtime()))   #一年中的第几个星期,星期天为星期的开始
print(time.strftime('%w',time.localtime()))    #星期几,星期天为星期的开始
 print(time.strftime('%W',time.localtime()))   #一年中的第几个星期,星期一为星期的开始
 print(time.strftime('%x',time.localtime()))    #本地日期表示
10/18/17
print(time.strftime('%X',time.localtime()))   #本地时间表示
17:16:17
 print(time.strftime('%Z',time.localtime()))    #当前时区
CST
 print(time.strftime('%%',time.localtime()))    #输出%本身
%

 print(time.strftime('%Y-%m-%d %H:%M:%S %w-%Z',time.localtime()))
2017-10-18 17:25:39 3-CST   #完整日期,时间,星期,时区

Time 模块中经常使用的模块函数

#time.altzone
#返回格林威治西部的夏令时地区的偏移秒数。如果该地区在格林威治东部会返回负值(如西欧,包括英国)。对夏令时启用地区才能使用。
#time.asctime([tupletime])
#接受时间元组并返回一个可读的形式为"Thu Oct 19 15:07:31 2017"(2017年10月19日 周四15时07分31秒)的24个字符的字符串。
#time.clock()
#用以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时,比time.time()更有用。
#time.time
#返回当前时间的时间戳(1970年经过的秒数)
#time.strptime()
#根据fmt的格式把一个时间字符串解析为时间元组。
#time.strftime(fmt[,tupletime])
#接收以时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定。
#time.ctime()作用相当于asctime(localtime(secs)),未给参数相当于asctime()
#time.localtime()以元组方式返回本地当前时间
#time.mktime()将元组时间转换为时间戳

    # time sleep() 函数推迟调用线程的运行,可通过参数secs指秒数,表示进程挂起的时间。

 #time.timezone  time.timezone是当地时区(未启动夏令时)距离格林威治的偏移秒数(>0,美洲;<=0大部分欧洲,亚洲,非洲)。

   # time.tzname  ime.tzname包含一对根据情况的不同而不同的字符串,分别是带夏令时的本地时区名称,和不带的。

 

  日期比较操作

  在datetime模块中有timedelta类,这个类的对象用于表示一个时间间隔,比如两个日期或者时间的差别。

构造方法:

import datetime

datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)  

所有的参数都有默认值0,这些参数可以是int或float,正的或负的。

可以通过 timedelta.days、tiemdelta.seconds 等获取相应的时间值。

timedelta 类的实例,支持加、减、乘、除等操作,所得的结果也是 timedelta 类的实例。比如:

import datetime

year = datetime.timedelta(days=365)

ten_years = year *10

nine_years = ten_years - year  

同时,date、time和datetime类也支持与timedelta的加、减运算。

datetime1 = datetime2 + timedelta

timedelta = datetime1 - datetime2

这样,可以很方便的实现一些功能。

 

  两个日期相差多少天。

import datetime

d1 = datetime.datetime.strptime('2019-03-05 17:41:20', '%Y-%m-%d %H:%M:%S')

d2 = datetime.datetime.strptime('2019-03-02 17:41:20', '%Y-%m-%d %H:%M:%S')

delta = d1 - d2

print delta.days  

输出:3

 

  今天的n天后的日期。

import datetime

now = datetime.datetime.now()

delta = datetime.timedelta(days=3)

n_days = now + delta

print n_days.strftime('%Y-%m-%d %H:%M:%S')  

输出:

2019-04-10 19:16:34

#计算两个日期的间隔

import datetime

d1 = datetime.datetime.strptime('2019-03-05 17:41:20', '%Y-%m-%d %H:%M:%S')

d2 = datetime.datetime.strptime('2019-03-02 17:41:20', '%Y-%m-%d %H:%M:%S')

delta = d1 - d2

print delta.days print delta

转载于:https://www.cnblogs.com/Crush999/p/11624340.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值