视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Python时间模块datetime、time、calendar的使用方法
2020-11-27 14:35:07 责编:小采
文档


本文简单总结了一下Python处理时间和日期方面的模块,主要就是datetime、time、calendar三个模块的使用,希望这篇文章对于学习Python的朋友们有所帮助。

首先就是模块的调用,很多IDE都已经安装好了很多Python经常使用到的模块,所以我们暂时不需要安装模块了。

import datetime
import time
import calendar

1.获取到此时的准确时间

# 获取此时的时间
print time.localtime()

//
输出格式为: time.struct_time(tm_year=2015, tm_mon=12, tm_mday=29, tm_hour=1, tm_min=10, tm_sec=25, tm_wday=1, tm_yday=363, tm_isdst=0)

2.获取当天的日期

 # 获取当天的日期
 print datetime.datetime.now()
 print datetime.date.today()

3.获取昨天的日期

# 获取昨天的日期
def getYesterday():
 today = datetime.date.today()
 oneday = datetime.timedelta(days=1)
 yesterday = today - oneday
 print type(today) # 查看获取到时间的类型
 print type(yesterday)
 return yesterday
yesterday = getYesterday()
print "昨天的时间:", yesterday

4.获取n天以前的日期
这个应该就不用给出代码了吧,稍微想想就可以得出结果了。

5.字符串转换为时间和日期

# 字符串转换为时间
def strTodatetime(datestr, format):
 return datetime.datetime.strptime(datestr, format)
print time.strftime("%Y-%m-%d", time.localtime())
print strTodatetime("2014-3-1","%Y-%m-%d")
print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print strTodatetime("2005-2-16","%Y-%m-%d")-strTodatetime("2004-12-31","%Y-%m-%d")

输出结果:
2015-12-29
2014-03-01 00:00:00
2015-12-29 01:10:25
47 days, 0:00:00
6.获取日历相关信息

# 获取某个月的日历,返回字符串类型
cal = calendar.month(2015, 12)
print cal
calendar.setfirstweekday(calendar.SUNDAY) # 设置日历的第一天
cal = calendar.month(2015, 12)
print cal

# 获取一年的日历
cal = calendar.calendar(2015)
print cal
cal = calendar.HTMLCalendar(calendar.MONDAY)
print cal.formatmonth(2015, 12)

7.calendar模块还可以处理闰年的问题

# 判断是否闰年、两个年份之间闰年的个数
print calendar.isleap(2012)
print calendar.leapdays(2010, 2015)

针对Python时间模块datetime ime进行详细探讨。

转义符对应意义如下

  • %a 本地简化星期名称
  • %A 本地完整星期名称
  • %b 本地简化的月份名称
  • %B 本地完整的月份名称
  • %c 本地相应的日期表示和时间表示
  • %d 月内中的一天(0-31)
  • %H 24小时制小时数(0-23)
  • %I 12小时制小时数(01-12)
  • %j 年内的一天(001-366)
  • %m 月份(01-12)
  • %M 分钟数(00=59)
  • %p 本地A.M.或P.M.的等价符
  • %S 秒(00-59)
  • %U 一年中的星期数(00-53)星期天为星期的开始
  • %w 星期(0-6),星期天为星期的开始
  • %W 一年中的星期数(00-53)星期一为星期的开始
  • %x 本地相应的日期表示
  • %X 本地相应的时间表示
  • %y 两位数的年份表示(00-99)
  • %Y 四位数的年份表示(000-9999)
  • %Z 当前时区的名称
  • %% %号本身
  • 代码:

    import time 
    import datetime 
     
     
    #两日期相减 
     
    d1 = datetime.datetime(2005, 2, 16) 
    d2 = datetime.datetime(2004, 12, 31) 
    print (d1 - d2).days
    
    
     
    #运行时间: 
     
    
    starttime = datetime.datetime.now() 
    endtime = datetime.datetime.now() 
    print (endtime - starttime).seconds
     
    #计算当前时间向后10天的时间。 
    # 如果是小时 days 换成 hours 
     
     
    d1 = datetime.datetime.now() 
    d3 = d1 datetime.timedelta(days =10) 
     
    print str(d3) 
    print d3.ctime()
    
    time.ctime([sec])#把秒数转换成日期格式,如果不带参数,则显示当前的时间。
     
    >>> import time
    >>> time.ctime()
    >>> "Wed Jun 14 15:02:50 2006"
    >>> time.ctime(1138068452427683)
    "Sat Dec 14 04:51:44 1901" 
    >>> import time
    >>> time.strftime("%Y-%m-%d %X",time.localtime())
    "2011-03-15 20:42:12"
    >>> time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
    "2011-03-15 20:03:47"
    DateTime模块
    ----------------------------
    datetime 将日期转化为秒
    >>> import datetime,time
    >>> time.mktime(datetime.datetime(2009,1,1).timetuple())
    1230739200.0
    >>> cc=[2000,11,3,12,43,33] #Attributes: year, month, day, hour, minute, second
    >>> time.mktime(datetime.datetime(cc[0],cc[1],cc[2],cc[3],cc[4],cc[5]).timetuple())
    973226613.0
    time.time()取得当前时间;
    time.localtime()取得本地时间;
    time.strftime()格式化日期;
    time.strptime(timeString)把字符串转化为日期;
    
    判断输入的日期是星期几
    >>> datetime.datetime(2011,02,15).weekday()
    1
    >>> datetime.datetime(2011,02,15).weekday()
    1
    >>> datetime.datetime(2011,02,16).weekday()
    2
    >>> datetime.datetime(2011,02,17).weekday()
    3
    >>>
    datetime模块获取当前时间
    >>> datetime.datetime.utcnow()
    datetime.datetime(2011, 3, 15, 13, 19, 32, 2194)
    >>> datetime.datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S") 格式化
    '2011-03-15 13:19:27'
    >>>
    

    下载本文
    显示全文
    专题