使用python比较日期时间_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.timezonetime.timezone是当地时区(未启动夏令时)距离格林威治的偏移秒数(>0,美洲;<=0大部分欧洲,亚洲,非洲)。

# time.tznameime.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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值