038 Python语法之time、calendar、datetime模块

time模块

  1. 格式化时间只能用字符,不能用中文

初识time

import time

tick = time.time()  # 1970年1月1日到现在的秒数
print(tick)
localtime = time.localtime(tick)
print(localtime) # 本地化时间
acttime = time.asctime(localtime)   # 格式化时间
print(acttime)
ctime = time.ctime()    # 和上面的等价
print(ctime)
print(time.strftime("%Y-%m-%d %H:%M:%S"))   # 格式化时间

# --------------------------
"""
1502433905.8102489
time.struct_time(tm_year=2017, tm_mon=8, tm_mday=11, tm_hour=14, tm_min=45, tm_sec=5, tm_wday=4, tm_yday=223, tm_isdst=0)
Fri Aug 11 14:45:05 2017
Fri Aug 11 14:45:05 2017
2017-08-11 14:52:31
"""

格式化时间

import time
# 格式化成2016-03-20 11:45:39形式
print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
# 格式化成Sat Mar 28 22:24:24 2016形式
print (time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))
  
# 将格式字符串转换为时间戳
a = "Sat Mar 28 22:24:24 2016"
print (time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y")))
以上实例输出结果:
2016-04-07 10:29:46
Thu Apr 07 10:29:46 2016
1459175064.0
  1. %y 两位数的年份表示(00-99)
  2. %Y 四位数的年份表示(000-9999)
  3. %m 月份(01-12)
  4. %d 月内中的一天(0-31)
  5. %H 24小时制小时数(0-23)
  6. %I 12小时制小时数(01-12)
  7. %M 分钟数(00=59)
  8. %S 秒(00-59)
  9. %a 本地简化星期名称
  10. %A 本地完整星期名称
  11. %b 本地简化的月份名称
  12. %B 本地完整的月份名称
  13. %c 本地相应的日期表示和时间表示
  14. %j 年内的一天(001-366)
  15. %p 本地A.M.或P.M.的等价符
  16. %U 一年中的星期数(00-53)星期天为星期的开始
  17. %w 星期(0-6),星期天为星期的开始
  18. %W 一年中的星期数(00-53)星期一为星期的开始
  19. %x 本地相应的日期表示
  20. %X 本地相应的时间表示
  21. %Z 当前时区的名称
  22. %% %号本身

一些time方法

time方法 描述
time.altzone() 返回格林威治西部的夏令时地区的偏移秒数
time.asctime(time.localtime()) Thu Apr 7 10:36:20 2016
time.clock() 和time.time()类似,比time.time()精确
time.ctime() Thu Apr 7 10:51:58 2016
time.gmtime(time.time()) 返回一个time元组格林时间
time.localtime(time.time()) 返回一个time元组当地时间
time.mktime(tupletime) 接收一个t=(2016,2,17,17,3,38,1,48,0)返回时间戳
time.sleep(seconds) 时间中止一段时间
time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()) 返回格式化时间2016-04-07 11:18:05
time.strptime(str,fmt='%a %b %d %H:%M:%S %Y') 格式化时间转元组时间
time.time() 返回当前时间戳
time.tzset() 根据环境变量TZ重新初始化时间相关设置

属性

time属性 描述
time.timezone 当地时区距离格林威治的偏移秒数
time.tzname 根据情况的不同而不同的字符串

显示日历

import calendar

cal = calendar.month(2017, 8)  # 打印当前月份的日历
print(type(cal))  # str类型

calendar方法

calendar方法 描述
calendar.calendar(year,w=2,l=1,c=6) 3个月一行,间隔距离为c,每日宽度间隔为w字符。每行长度为21* W+18+2* C。l是每星期行数
calendar.firstweekday() 貌似都是返回0、星期一
calendar.isleap(year) 返回是否闰年True、False
calendar.leapdays(y1,y2) 返回在Y1,Y2两年之间的闰年总数。
calendar.month(year,month,w=2,l=1) 返回一个多行字符串格式的year年month月日历,两行标题,一周一行。每日宽度间隔为w字符。每行的长度为7* w+6。l是每星期的行数。
calendar.monthcalendar(year,month) 返回一个整数的单层嵌套列表。每个子列表装载代表一个星期的整数。Year年month月外的日期都设为0;范围内的日子都由该月第几日表示,从1开始。
calendar.monthrange(year,month) 返回两个整数。第一个是该月的星期几的日期码,第二个是该月的日期码。日从0(星期一)到6(星期日);月从1到12。
calendar.prcal(year,w=2,l=1,c=6) 相当于 print calendar.calendar(year,w,l,c).
calendar.prmonth(year,month,w=2,l=1) 相当于 print calendar.calendar(year,w,l,c)。
calendar.setfirstweekday(weekday) 设置每周的起始日期码。0(星期一)到6(星期日)
calendar.timegm(tupletime) 和time.gmtime相反:接受一个时间元组形式,返回该时刻的时间辍(1970纪元后经过的浮点秒数
calendar.weekday(year,month,day) 返回给定日期的日期码。0(星期一)到6(星期日)月份为 1(一月) 到 12(12月)

datetime模块

  1. 可直接进行时间加减

datetime模块使用

import datetime

date1 = datetime.datetime.now()
print(datetime.datetime.now())  # 当前时间
date2 = datetime.datetime(2017,6,12,3,4,5,34213)    # 创建一个时间
print(date2-date1)  # 计算时间差,重载了-
print((date2-date1).days)   # 计算天数
print((date2-date1).seconds)   # 计算除天之外的秒数


datetime.datetime.strptime("2017-07-05 09:08:07","%Y-%m-%d %H:%M:%S")

# 将当前时间转换成字符串
date4 = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(type(date4))  # str

datetime的方法

  1. datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]]) -- 构造函数,返回一个datetime对象。year, month, day为必选参数
  2. astimezone(...) -- 根据给定的timezone对象,返回转换为本地时区的timezone对象。
  3. combine(...) -- 根据给定date, time对象合并后,返回一个对应值的datetime对象。
  4. ctime(...) -- 返回ctime格式的字符串。
  5. date(...) -- 返回具有相同year, month, day的date对象
  6. dst(...) -- 返回self.tzinfo.dst(self).
  7. fromtimestamp(...) -- 根据时间戳数值,返回一个datetime对象。
  8. isoformat(...) -- 返回ISO 8601格式的字符串,如:YYYY-MM-DDTHH:MM:SS[.mmmmmm][+HH:MM]
  9. now(...) -- 根据给定的时区,返回当地的当前时间。
  10. replace(...) -- 返回一个替换了指定日期时间字段的新datetime对象
  11. strptime(...) -- 根据string, format2个参数,返回一个对应的datetime对象。
  12. time(...) -- 返回一个带有相同time,但没有tzinfo的time对象。
  13. timetuple(...) -- 返回一个时间元素, 等价于time.localtime().
  14. timetz(...) -- 返回一个带有相同time和tzinfo的time对象。
  15. tzname(...) -- 返回self.tzinfo.tzname(self).
  16. utcfromtimestamp(...) -- 返回UTC时间戳的datetime对象,时间戳值为time.time()
  17. utcnow(...) -- 返回UTC当前时间的datetime对象.
  18. utcoffset(...) -- Return self.tzinfo.utcoffset(self).
  19. utctimetuple(...) -- 返回UTC时间元组对象, 等价于time.localtime().
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,511评论 1 330
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,495评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,595评论 0 225
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,558评论 0 190
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,715评论 3 270
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,672评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,112评论 2 291
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,837评论 0 181
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,417评论 0 228
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,928评论 2 232
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,316评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,773评论 2 234
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,253评论 3 220
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,827评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,440评论 0 180
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,523评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,583评论 2 249

推荐阅读更多精彩内容