当前位置:   article > 正文

a16_Python日期时间Date/Time---学习笔记_%z or %z - 时区或名称或缩写

%z or %z - 时区或名称或缩写

Python程序可以处理多种方式的日期和时间。日期格式之间的转换是一种常见计算机的杂活。 Python的时间和日历模块,能帮助处理日期和时间。

Tick是什么?

时间间隔为浮点数以秒为单位的数字。在特定的时间瞬间自上午12时00分,1970年1月1日(纪元)表示,单位为秒。

Python中可用的流行时间模块,它提供功能转换。该功能time.time()返回当前系统时间,因为上午12点,1970年1月1日(时代)。

例子:

  1. #!/usr/bin/python
  2. import time; # This is required to include time module.
  3. import datetime
  4. ticks = time.time()
  5. time1 = datetime.datetime.now();
  6. print (time1)
  7. print ("Number of ticks since 12:00am,January 1,1970: ",ticks)

运行上面的程序,它会产生以下结果:

  1. 2020-06-06 16:56:36.647063
  2. Number of ticks since 12:00am,January 1,1970: 1591433796.6470635

日期计算是很容易。不过当日的时代之前,不能以这种形式来表示。在遥远的将来的日期也不能代表这种方式- 分界点是一段2038年在UNIX和Windows。

什么是TimeTuple?

Python的时间函数处理时间为9个数字的元组,如下图所示:

索引字段
0年(四位数字)2015
1月份1 - 12
2日期1 - 31
3小时0 - 23
4分钟0 - 59
50 - 61 (60 或 61是闰秒)
6星期0 - 6 (0 为星期一)
7一年中的第几天1 - 366 (Julian日期)
8夏令时-1, 0, 1, -1 表示库决定DST

 上面的元组相当于struct_time结构。这种结构具有以下属性:

索引属性
0tm_year2018
1tm_mon1 - 12
2tm_mday1 - 31
3tm_hour0 - 23
4tm_min0 - 59
5tm_sec0 - 61 (60 或 61 是闰秒)
6tm_wday0 to 6 (0 为星期一)
7tm_yday1 to 366 (Julian日期)
8tm_isdst-1, 0, 1, -1 表示库决定DST

获取当前时间 :

转换一个时刻从秒epoch浮点值转换成时元组,浮点值传递给函数(例如,本地时间)返回时间元组的全部九项有效。

  1. #!/usr/bin/python
  2. import time;
  3. localtime = time.localtime(time.time())
  4. print ("Local current time : ",localtime)

运行上面的程序,它会产生以下结果:

Local current time :  time.struct_time(tm_year=2020, tm_mon=6, tm_mday=6, tm_hour=17, tm_min=41, tm_sec=7, tm_wday=5, tm_yday=158, tm_isdst=0)

获取格式化的时间 :

可以随时根据要求格式化,但简单的方法来获取时间,可读的格式是asctime():

  1. #!/usr/bin/python
  2. import time;
  3. localtime = time.asctime(time.localtime(time.time()))

运行上面的程序,它会产生以下结果:

Local current time :  Sat Jun  6 17:54:30 2020

获取日历月份:

日历模块提供了广泛的方法,如有年和月的日历。在这里,我们打印日历给定月份(2020年6月):

  1. #!/usr/bin/python
  2. import calendar
  3. cal = calendar.month(2020,6)
  4. print("Here is the calendar: ")
  5. print (cal);

运行上面的程序,它会产生以下结果:

  1. Here is the calendar:
  2. June 2020
  3. Mo Tu We Th Fr Sa Su
  4. 1 2 3 4 5 6 7
  5. 8 9 10 11 12 13 14
  6. 15 16 17 18 19 20 21
  7. 22 23 24 25 26 27 28
  8. 29 30

time模块:

Python中可用的流行时间模块,时间之间转换提供了以下一些函数。下面是所有可用方法的列表:

SN方法及描述
1time.altzone
当地DST时区的偏移量,如果一个定义在UTC西部秒钟。这是负值,如果当地的DST时区为UTC东边(如西欧,包括英国)。如果白天不为零只用这个。
2time.asctime([tupletime])
接受一个时间元组,并返回一个可读的24个字符的字符串,如“Tue Dec 11 18:07:14 2015'。
3time.clock( )
返回当前CPU时间为几秒钟的浮点数。以测量不同方法的计算成本,time.clock的值比time.time()更有用
4time.ctime([secs])
类似asctimeasctime(localtime(secs)),不带参数就像asctime()
5time.gmtime([secs])
接收表示从epoch秒钟的瞬间,并返回一个时间元组t及UTC时间。注意:t.tm_isdst始终为0
6time.localtime([secs])
接收表示从epoch秒钟的瞬间,并返回一个时间元组t与被本地时间(t.tm_isdst是0或1,这取决于是否DST的适用于即时秒通过本地规则)
7time.mktime(tupletime)
接受表示为一个时间的元组中的本地时间瞬间,并返回浮点值从epoch以秒表示的时刻
8time.sleep(secs)
暂停secs秒钟调用线程
9time.strftime(fmt[,tupletime])
接收表示为一个时间的元组中的本地时间瞬间并返回表示所指定的字符串fmt瞬间的字符串
10time.strptime(str,fmt='%a %b %d %H:%M:%S %Y')
根据格式字符串格式化解析str并返回时间元组格式
11time.time( )
返回当前时刻,自时代浮点秒数
12time.tzset()
重置所使用的库例程的时间转换规则。环境变量TZ指定如何完成此操作。

altzone()方法的语法结构:

altzone()方法是time模块的属性。当地的DST时区的这返回的偏移量,在UTC西部秒钟,如果一个定义,这是负值,如果当地的DST时区为UTC东边(如西欧,包括英国)只有用这个,如果白天不为零。

time.altzone

参数:NA

返回值:当地的DST时区的这个方法返回的偏移量,在UTC西部秒钟,如果一个定义。

例子:

  1. #!/usr/bin/python
  2. import time
  3. print("time.altzone %d " % time.altzone)

运行上面的程序,它会产生以下结果:

time.altzone -32400 

asctime()方法的语法结构:

接受一个时间元组,并返回一个可读的24个字符的字符串,如“Tue Dec 11 18:07:14 2015',asctime()方法将一个元组或struct_time表示的时间返回gmtime()或localtime(),以下列格式的24个字符的字符串:“Tue Feb 17 23:21:05 2015”。

time.asctime([t])

参数:t -- 这是9个元素或struct_time元组表示所返回gmtime的()或localtime()函数的时间。

返回值:此方法返回以下形式的24个字符的字符串:“Tue Feb 17 23:21:05 2015”。

例子:

  1. #!/usr/bin/python
  2. import time
  3. t = time.localtime()
  4. print("time.asctime(t): %s" % time.asctime(t))

运行上面的程序,它会产生以下结果:

time.asctime(t): Mon Jun  8 12:04:00 2020

clock()方法的语法结构:

参数:NA

返回值:此方法返回当前处理器时间作为浮点数在UNIX秒钟,并在Windows中表示返回这个函数的第一个调用过去挂钟秒钟,作为浮点数。

例子:

  1. #!/usr/bin/python
  2. import time
  3. def procedure():
  4. time.sleep(2.5)
  5. #measure process time
  6. #t0 = time.clock() 将从Python 3.8中删除:使用time.perf_counter 或改为time.process_time (版本1)
  7. t0 = time.perf_counter()
  8. procedure()
  9. #print(time.clock() - t0, "seconds process time")
  10. print(time.perf_counter() - t0,"seconds process time" )
  11. ##measure wall time
  12. # t0 = time.time()
  13. t0 = time.process_time()
  14. procedure()
  15. # print(time.time() - t0 ,"seconds wall time")
  16. print (time.process_time() - t0 ,"seconds wall time")

运行上面的程序,它会产生以下结果:

  1. 2.4996362000000003 seconds process time
  2. 0.0 seconds wall time

ctime()方法的语法结构:

ctime()方法转换,因为历元到表示本地时间的字符串表示以秒为单位的时间。如果不设置秒时或None,所返回的时间的当前time()被使用。使用asctime(localtime(secs))。不使用ctime()的区域信息。

time.ctime([ sec ])

参数:sec -- 这些都是秒数要被转换成字符串表示。

返回值:此方法不返回任何值。

例子:

  1. #!/usr/bin/python
  2. import time
  3. print("time.ctime(): %s " % time.ctime())

运行上面的程序,它会产生以下结果:

time.asctime(t): Tue Jun  9 11:21:50 2020

gmtime()方法的语法结构:

gmtime()方法转换历元到一struct_time以UTC其中dst的标志值始终为0以表示时间,如果不设置秒时或None,返回时间为当前time().

time.gmtime([sec])

参数:sec -- 这是秒数转换成结构struct_time来表示。

返回值:此方法不返回任何值。

例子:

  1. #!/usr/bin/python
  2. import time
  3. heppy = "heppy"
  4. #print ("time.gmtime(): %s" % (time.gmtime()))
  5. #原因:1 % 操作符只能直接用于字符串(‘123’),列表([1,2,3])、元组,因此需要一一匹配操作符。说明前后%和后面的参数数量不对应
  6. print ("time.gmtime() : %s,%s,%s,%s,%s,%s,%s,%s,%s" % time.gmtime())
  7. print ("time.gmtime(): %s 肯肯 %s 肯肯 %s 肯肯 %s 肯肯 %s 肯肯 %s 肯肯 %s 肯肯 %s 肯肯 %s " % (time.gmtime()))

运行上面的程序,它会产生以下结果:

  1. time.gmtime() : 2020,6,9,3,46,2311610
  2. time.gmtime(): 2020 肯肯 6 肯肯 9 肯肯 3 肯肯 46 肯肯 23 肯肯 1 肯肯 161 肯肯 0

localtime()方法的语法结构:

localtime()方法类似gmtime()方法,但它转换秒数为本地时间。如果不设置秒时或None,所返回的当前时间使用time()方法。在dst标志被设置为1时,夏令时适用于给定的时间。

time.localtime([sec])

参数:sec -- 这是秒数转换成结构struct_time来表示。

返回值:此方法不返回任何值。

例子:

  1. #!/usr/bin/python
  2. import time
  3. print("time.localtime() : %s,%s,%s,%s,%s,%s,%s,%s,%s" % time.localtime())
  4. print("time.localtime() : (%s,%s,%s,%s,%s,%s,%s,%s,%s)" % time.localtime())
  5. print("time.localtime() : (%s)" % time.localtime())

运行上面的程序,它会产生以下结果:
 

  1. time.localtime() : 20206914423311610
  2. Traceback (most recent call last):
  3. time.localtime() : (20206914423311610
  4. File "F:/pythonDEV/简明python笔记/基本语法001/日期时间/localtime()方法类-转换秒数为本地时间.py", line 6, in <module>
  5. print("time.localtime() : (%s)" % time.localtime())
  6. TypeError: not all arguments converted during string formatting

mktime()方法的语法结构:

mktime()方法是localtime()反函数。它的参数是struct_time或全9元组,它返回一个浮点数,为了兼容时time()。

如果输入值不能表示为有效的时间,那么OverflowError或ValueError错误将被引发。

time.mktime(t)

参数:t -- 这是struct_time或满9元组。

返回值:此方法返回一个浮点数,对于兼容性time()。

例子:

  1. #!/usr/bin/python
  2. import time
  3. t =(2020,6,9,14,42,33,1,161,0);
  4. secs = time.mktime(t) #并返回浮点值从epoch以秒表示的时刻
  5. print("time.mktime(t): %f " % secs)
  6. #接收表示从epoch秒钟的瞬间,并返回一个时间元组t与被本地时间(t.tm_isdst是0或1,这取决于是否DST的适用于即时秒通过本地规则),
  7. # 接受一个时间元组,并返回一个可读的24个字符的字符串,如“Tue Dec 11 18:07:14 2015'。
  8. print("asctime(localtime(secs)): %s " % time.asctime(time.localtime(secs)))

运行上面的程序,它会产生以下结果:

  1. time.mktime(t): 1591684953.000000
  2. asctime(localtime(secs)): Tue Jun 9 14:42:33 2020

sleep()方法的语法结构:

sleep()方法暂停执行给定秒数。该参数可以是一个浮点数来表示一个更精确的睡眠时间。实际的中止时间可以小于该请求,因为任何捕获信号将终止sleep()以下执行该信号的捕捉。

time.sleep(t)

参数:t -- 这是被挂起秒钟执行的数字。

返回值:此方法不返回任何值。

例子:

  1. #!/usr/bin/python
  2. import time
  3. print ("Start: %s " % time.ctime())
  4. time.sleep(5)
  5. print ("End : %s " % time.ctime())

运行上面的程序,它会产生以下结果:

  1. Start: Tue Jun  9 15:28:33 2020 
  2. End : Tue Jun  9 15:28:38 2020 

strftime()方法的语法结构:

strftime()方法转换成一个元组或struct_time表示时间所指定的格式参数所返回gmtime()或localtime()为一个字符串。当t不设置,所返回当前时间使用localtime()方法。格式必须是字符串。异常ValueError被挂起,如果t在任何字段的允许范围之外。

time.strftime(format[,t])

参数:t -- 这是以秒为单位来进行格式化的时间。format -- 这是将用于格式化给定的时间的指令。

下面的指令可以嵌入格式字符串:

指令

  • %a - 简写的星期几

  • %A - 完整的星期几

  • %b - 缩写的月份名称

  • %B - 完整的月份名称

  • %c - 首选日期和时间表示

  • %C - 世纪值(年份除以100,范围从00到99)

  • %d - 该月的第几天(01〜31)

  • %D - 类似 %m/%d/%y

  • %e - 该月的一天(1〜31)

  • %g - 类似于%G,但是没有世纪

  • %G - 对应于ISO周数4位数的年份(参见%V)

  • %h - 类似于 %b

  • %H - 小时,使用24小时制(00〜23)

  • %I - 小时,使用12小时制(01〜12)

  • %j - 一年中的哪一天(001〜366)

  • %m - 月份(01〜12)

  • %M - 分钟

  • %n - 换行符

  • %p - 根据给定的时间值am或pm

  • %r - 时间在上午和下午的符号:am/pm

  • %R - time in 24 hour notation

  • %S - 秒

  • %t - 制表符

  • %T - 当前时间,等于 %H:%M:%S

  • %u - 工作日为数字(1到7),星期一= 1。警告:在Sun Solaris上周日=1

  • %U - 当年的周数,第一个星期日作为第一周的第一天

  • %V - 本年度ISO 8601的周数(01到53),其中,第1周是在本年度至少4天的第一个星期,星期一作为一周的第一天

  • %W - 当年的周数,与第一个星期一作为第一周的第一天

  • %w - 星期为一个小数,星期日=0

  • %x - 没有时间的日期表示

  • %X - 无日期首选的时间表示

  • %y - 一年无世纪(范围从00到99)

  • %Y - 今年,包括世纪

  • %Z or %z - 时区或名称或缩写

  • %% -文字%字符

返回值:此方法不返回任何值。

例子:

  1. #!/usr/bin/python
  2. import time
  3. t = (2009, 2, 17, 17, 3, 38, 1, 48, 0)
  4. t = time.mktime(t)
  5. print(time.strftime("%b %d %Y %H:%M:%S",time.gmtime(t)))

运行上面的程序,它会产生以下结果:

Feb 17 2009 09:03:38

strptime()方法的语法结构:

strptime()方法分析表示根据格式的时间字符串。返回值是一个struct_time所返回gmtime()或localtime()。

格式参数使用相同的指令使用strftime();它默认为“%a %b %d %H:%M:%S %Y”相匹配的ctime()所返回的格式。

如果字符串不能按格式进行解析,或者如果它具有解析后多余的数据,ValueError被挂起。

time.strptime(string[,format])

参数

  • string -- 这是其中将根据给定的格式解析字符串格式的时间。

  • format -- 这是将用于解析该给定的字符串的指令。

下面的指令可以嵌入格式字符串:

指令

  • %a - 简写的星期几

  • %A - 完整的星期几

  • %b - 缩写的月份名称

  • %B - 完整的月份名称

  • %c - 首选日期和时间表示

  • %C - 世纪值(年份除以100,范围从00到99)

  • %d - 该月的第几天(01〜31)

  • %D - 类似 %m/%d/%y

  • %e - 该月的一天(1〜31)

  • %g - 类似于%G,但是没有世纪

  • %G - 对应于ISO周数4位数的年份(参见%V)

  • %h - 类似于 %b

  • %H - 小时,使用24小时制(00〜23)

  • %I - 小时,使用12小时制(01〜12)

  • %j - 一年中的哪一天(001〜366)

  • %m - 月份(01〜12)

  • %M - 分钟

  • %n - 换行符

  • %p - 根据给定的时间值am或pm

  • %r - 时间在上午和下午的符号:am/pm

  • %R - 时间以24小时制

  • %S - 秒

  • %t - 制表符

  • %T - 当前时间,等于 %H:%M:%S

  • %u - 工作日为数字(1到7),星期一= 1。警告:在Sun Solaris上周日=1

  • %U - 当年的周数,第一个星期日作为第一周的第一天

  • %V - 本年度ISO 8601的周数(01到53),其中,第1周是在本年度至少4天的第一个星期,星期一作为一周的第一天

  • %W - 当年的周数,与第一个星期一作为第一周的第一天

  • %w - 星期为一个小数,星期日=0

  • %x - 没有时间的日期表示

  • %X - 无日期首选的时间表示

  • %y - 一年无世纪(范围从00到99)

  • %Y - 今年,包括世纪

  • %Z or %z - 时区或名称或缩写

  • %% -文字%字符

返回值

这个返回struct_time所返回gmtime()或localtime()的值。

例子:

  1. #!/usr/bin/python
  2. #根据格式字符串格式化解析str并返回时间元组格式
  3. import time
  4. t = (2009, 2, 17, 17, 3, 38, 1, 48, 0)
  5. t = time.mktime(t)
  6. print(time.strftime("%b %d %Y %H:%M:%S",time.gmtime(t)))
  7. struct_time = time.strptime("30 NOV 00","%d %b %y")
  8. print ("returned tuple: %s,%s,%s,%s,%s,%s,%s,%s,%s " % struct_time)

运行上面的程序,它会产生以下结果:

  1. Feb 17 2009 09:03:38
  2. returned tuple: 2000,11,30,0,0,0,3,335,-1

time()方法的语法结构:

time()方法返回时间,在UTC时代以秒表示浮点数。注意:尽管在时间总是返回作为一个浮点数,并不是所有的系统提供时间超过1秒精度。虽然这个函数正常返回非递减的值,就可以在系统时钟已经回来了两次调用期间返回比以前调用一个较低的值。

参数:NA

返回值:此方法返回的时间,因为时代以秒表示浮点数(在UTC)。

例子:

  1. #!/usr/bin/python
  2. import time
  3. #time()方法返回时间,在UTC时代以秒表示浮点数。注意:尽管在时间总是返回作为一个浮点数,并不是所有的系统提供时间超过1秒精度。
  4. # 虽然这个函数正常返回非递减的值,就可以在系统时钟已经回来了两次调用期间返回比以前调用一个较低的值。
  5. print("time.time(): %f " % time.time())
  6. # 接收表示从epoch秒钟的瞬间,并返回一个时间元组t与被本地时间(t.tm_isdst是0或1,这取决于是否DST的适用于即时秒通过本地规则)
  7. print(time.localtime(time.time()))
  8. #接受一个时间元组,并返回一个可读的24个字符的字符串,如“Tue Dec 11 18:07:14 2015'
  9. print(time.asctime(time.localtime(time.time())))

运行上面的程序,它会产生以下结果:

  1. time.time(): 1591691854.128485
  2. time.struct_time(tm_year=2020, tm_mon=6, tm_mday=9, tm_hour=16, tm_min=37, tm_sec=34, tm_wday=1, tm_yday=161, tm_isdst=0)
  3. Tue Jun 9 16:37:34 2020

tzset()方法的语法结构:

tzset()方法重置所使用的库例程的时间转换规则。环境变量TZ指定如何完成此操作。

TZ环境变量的标准格式(空格为清楚起见而加的):

std offset [dst [offset [,start[/time], end[/time]]]]
  • std和dst: 三个或更多的字母数字给人的时区缩写。这些将被传播到time.tzname。

  • offset: 偏移量offset的形式为: .hh[:mm[:ss]]。这表明增值的本地时间以UTC到达。如果前面加一个“ - ”,时区是本初子午线以东;否则,它就是西部。如果没有偏移如下dst,夏季时间被假定为未来的标准时间一小时。

  • start[/time], end[/time]: 表示当改变到和从夏令回来。开始和结束日期的格式是执行下列操作之一:

    • Jn: 在Julian日期N(1 <= n <= 365)。闰日不计算在内,所以在各年2月28日是第59天与3月1日为60天。

    • n: 从零开始的Julian日期(0<= N<=365)。闰年天数进行计数,并且可以指2月29日。

    • Mm.n.d: 第×天(0<= D<= 6)或星期n的一年中月米(1 <= N <=5,1<=米<=12,其中每周5表示“在最后d日月m“,这可能会发生在任一所述第四或第五周)。周1是其中d天时发生在第一周。0是星期天。

    • time: 此具有相同的格式偏移所不同的是,没有前导符号(“ - ”或“+”)是允许的。在默认情况下,如果时间没有给出,是02:00:00。

语法:以下是tzset()方法的语法:

time.tzset()

参数:NA

返回值:此方法不返回任何值。

例子:

  1. # -*- coding:utf-8 -*-
  2. #!/usr/bin/python
  3. import time
  4. import os
  5. import sys
  6. os.environ['TZ'] = 'EST+05EDT,M4.1.0,M10.5.0'
  7. #time.tzset()
  8. time.mktime
  9. print(time.strftime('%X %x %Z'))
  10. os.environ['TZ'] = 'AEST - 10AEDT-11,M10.5.0,M3.5.0'
  11. #time.tzset()
  12. time.mktime
  13. print(time.strftime('%X %x %Z'))

运行上面的程序,它会产生以下结果:

  1. 20:49:17 06/09/20 ?D1¨²¡À¨º¡Á?¨º¡À??
  2. 20:49:17 06/09/20 ?D1¨²¡À¨º¡Á?¨º¡À??

 

下列是时间time模块提供两个重要的属性:

SN属性及描述
1time.timezone
属性time.timezone是从UTC(>0,在美洲;<=0,在大多数欧洲,亚洲,非洲),抵销了本地时区的秒钟(不含DST)。
2time.tzname
属性time.tzname是一对语言环境相关的字符串,这是本地时区的名称。

 time.timezone语法结构:

1、问题来源
最近折腾django做网站,发现存储到数据库中的时间在本机和vps上显示出来是不一样的。牵引出时区的相关问题。

2、时区的作用
一言以蔽之,就是世界通用。

单独一个时间,没有时区信息,可能不同地方的人会觉得是不同的时间。没有时区的时间可以认作是信息不全的。

假如去国外参加一个国际会议,时区用错,岂不白瞎。

3、哪个时区最通用
UTC时间。这里加了“最”。。。。为啥这么说。有2个原因。

1). pytz官方文档说了些内容。链接在这。

  1. The major problem we have to deal with is that certain datetimes may occur twice in a year. For example, in the US/Eastern timezone on the last Sunday morning in October, the following sequence happens:
  2. 01:00 EDT occurs
  3. 1 hour later, instead of 2:00am the clock is turned back 1 hour and 01:00 happens again (this time 01:00 EST)
  4. In fact, every instant between 01:00 and 02:00 occurs twice. This means that if you try and create a time in the ‘US/Eastern’ timezone the standard datetime syntax, there is no way to specify if you meant before of after the end-of-daylight-saving-time transition.


大意是某时区某天的某个时间一年内会出现2次。转换时间、初始化时间可能会出时差。。。。具体没有深究其内部原理。。。。

2). 某些时区名字未统一
比如你用某些字符串如”CST”、”CCT”、”PRC”表示某个时区。可能会有歧义然后导致时区设定失败。或者你用pytz构造的时区来设定时区,也很有可能会设置失败。还是pytz的doc文档指出的。

Unfortunately using the tzinfo argument of the standard datetime constructors ‘’does not work’’ with pytz for many timezones.


所以,如果带时区,原始的数据还是以UTC格式存储比较好。显示时可以转换为指定时区再格式化成字符串。

4、Python中时区相关库
推荐顺序,dateutil > pytz > datetime。

1) dateutil

  • 解析时间

    1. 不用去操心strptime的格式了。模块自己推导。
    2. 可以在解析时就附加上时区信息。
  1. # #from dateutil.parser import parse #这是unit系统
  2. # import detautil
  3. #
  4. # print (parse("2018 01-06 10:32"));
  5. # print (parse("18 01-06 10:32"));
  6. # print ( parse("2018 01 06 10:32"));
  7. # print (parse(" 10:32"));
  8. # #第二部分
  9. # from dateutil.tz import gettz,tzlocal #这是unit系统
  10. #
  11. # tzinfos = {"BRST": -10800,"CST":gettz("America/Chicago")}
  12. #
  13. # parse("2020-06-09 21:49:00 BRST",tzinfos = tzoffset)
  14. #
  15. # parse("2012-01-19 17:21:00 CST", tzinfos=tzinfos)
  16. #第三部分获取当前时区
  17. # from datetime import datetime #这是unit系统
  18. # from dateutil.tz import *
  19. # print (datetime.now(tzlocal()).tzname())
  20. #第四部分构造指定时区
  21. # from dateutil.tz import *
  22. #
  23. # gettz("Asia/Shanghai")
  24. # 2-1 pytz
  25. # 构造时区
  26. # pytz.timezone("Asia/Shanghai")
  27. # 3-1 pytz
  28. # 转换时区-astimezone
  29. from datetime import datetime
  30. print(datetime.now())
  31. # print (datetime.now().astimezone(pytz.timezone("UTC")))

运行上面的程序,它会产生以下结果:

2020-06-09 22:14:51.035845

 

calendar 模块

日历calendar模块提供与日历相关的功能,包括功能来打印一个文本日历对于给定的月份或年份。

默认情况下,日历把星期一作为一周的第一天,周日为最后一天。要改变这种情况,调用calendar.setfirstweekday()函数。

下面是日历calendar模块可用的功能列表:

SN方法及描述
1calendar.calendar(year,w=2,l=1,c=6)
返回为多行字符串的逐年日历格式化成用c空格分隔的三列。 w是中的每一个日期字符的宽度;每行的长度为21* w +18+2* c。 l为每个星期的行数。
2calendar.firstweekday( )
返回当前设置为每个星期开始工作日。默认情况下,当先导入calendar,这是0,意思是星期一。
3calendar.isleap(year)
如果今年是闰年返回true,否则为false。
4calendar.leapdays(y1,y2)
返回范围内的总数在range(y1,y2)。
5calendar.month(year,month,w=2,l=1)
返回为多行字符串与日历月month年year,每周一条线加上两个标题行。 w是中的每一个日期字符的宽度;每行的长度为7* W +6。 l为每个星期的行数。
6calendar.monthcalendar(year,month)
返回整数的列表。每个子列表表示一个星期。月month年year都设置为0;在一个月内,day都被设置为一天,月份,1及以上的数字。
7calendar.monthrange(year,month)
返回两个整数。第一个是星期几月month年year的第一天的代码;第二个是在所述月份的天数。星期代码是0(星期一)至6日(星期日);月数是1〜12。
8calendar.prcal(year,w=2,l=1,c=6)
打印类似calendar.calendar(year,w,l,c).
9calendar.prmonth(year,month,w=2,l=1)
打印类似calendar.month(year,month,w,l).
10calendar.setfirstweekday(weekday)
将每个星期的第一天工作日代码设置。星期代码是0(星期一)至6日(星期日)。
11calendar.timegm(tupletime)
time.gmtime的反向:接受一个时刻在时间元组的形式,并返回同一时刻为从epoch浮点秒数。
12calendar.weekday(year,month,day)
返回给定日期的星期代码。星期代码0(星期一)至6日(星期日);月份数字代码为1(一月)到12(12月)。

其它模块和函数:

如果有兴趣,那么在这里也要找到其他重要的模块和功能,如:日期和时间在Python使用:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/579434
推荐阅读
相关标签
  

闽ICP备14008679号