美文网首页
python3对日期和时间的常见处理

python3对日期和时间的常见处理

作者: 冷若秋枫 | 来源:发表于2020-02-19 19:05 被阅读0次

本篇文章主要介绍在Python3中如何获取时间和日期,并对其进行格式化处理。
Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间,本文以time 模块为例来转换常见的日期格式。

时间元组

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

序号 字段
1 4位数年 2020
2 1到12
3 1到31
4 小时 0到23
5 分钟 0到59
6 0到61 (60或61 是闰秒)
7 一周的第几日 0到6 (0是周一)
8 一年的第几日 1到366 (儒略历)
9 夏令时 -1, 0, 1, -1是决定是否为夏令时的旗帜

上述也就是struct_time元组。这种结构具有如下属性:

序号 属性
1 tm_year 2020
2 tm_mon 1到12
3 tm_mday 1到31
4 tm_hour 0到23
5 tm_min 0到59
6 tm_sec 0到61 (60或61 是闰秒)
7 tm_wday 一周的第几日,0到6 (0是周一)
8 tm_yday 一年的第几日,1到366 (儒略历)
9 tm_isdst -1, 0, 1, -1是决定是否为夏令时的旗帜

导入time模块

首先需要在python中导入time模块。

# 导入time模块
import time

获取时间戳

每个时间戳都以自从 1970 年 1 月 1 日午夜(历元)经过了多长时间来表示,是以秒为单位的浮点小数。

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

获取原始时间戳

print(time.time())

获取以秒为单位的时间戳

print(int(time.time()))

将返回浮点数的时间戳传递给localtime函数,可以实现时间戳向元组转换

以上一个函数的执行结果如下:

Python 3.7.6 (default, Feb  4 2020, 11:26:01)
[Clang 11.0.0 (clang-1100.0.33.8)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import time
>>> print(time.time())
1582107006.9955
>>>
>>> print(int(time.time()))
1582107014
>>>
>>> time.localtime(time.time())
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=19, tm_hour=18, tm_min=10, tm_sec=19, tm_wday=2, tm_yday=50, tm_isdst=0)
>>>

对获取的时间和日期进行格式化

可以根据需求选取各种格式:

最简单的获取可读的时间模式的函数是asctime()

print(time.asctime(time.localtime(time.time())))

也可以使用 time 模块的 strftime 方法来格式化日期,方法为:

time.strftime(format[, t])

>>> print(time.asctime(time.localtime(time.time())))
Wed Feb 19 18:14:29 2020
>>>
>>> time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
'2020-02-19 18:17:13'
>>>
>>> time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())
'Wed Feb 19 18:17:30 2020'
>>>

也可以使用 time 模块的 mktime 方法来将字符串转换为时间戳,方法为:

time.mktime(p_tuple)

>>> time.mktime(time.strptime("2020-02-19 18:17:13", "%Y-%m-%d %H:%M:%S"))
1582107433.0
>>>

python中时间日期格式化符号

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

获取某月日历

Calendar模块有很广泛的方法用来处理年历和月历,例如打印某月的月历:

>>> import calendar
>>> print(calendar.month(2020, 2))
   February 2020
Mo Tu We Th Fr Sa Su
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29

>>>
>>> print(calendar.calendar(2020))
                                  2020

      January                   February                   March
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
       1  2  3  4  5                      1  2                         1
 6  7  8  9 10 11 12       3  4  5  6  7  8  9       2  3  4  5  6  7  8
13 14 15 16 17 18 19      10 11 12 13 14 15 16       9 10 11 12 13 14 15
20 21 22 23 24 25 26      17 18 19 20 21 22 23      16 17 18 19 20 21 22
27 28 29 30 31            24 25 26 27 28 29         23 24 25 26 27 28 29
                                                    30 31

       April                      May                       June
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
       1  2  3  4  5                   1  2  3       1  2  3  4  5  6  7
 6  7  8  9 10 11 12       4  5  6  7  8  9 10       8  9 10 11 12 13 14
13 14 15 16 17 18 19      11 12 13 14 15 16 17      15 16 17 18 19 20 21
20 21 22 23 24 25 26      18 19 20 21 22 23 24      22 23 24 25 26 27 28
27 28 29 30               25 26 27 28 29 30 31      29 30

        July                     August                  September
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
       1  2  3  4  5                      1  2          1  2  3  4  5  6
 6  7  8  9 10 11 12       3  4  5  6  7  8  9       7  8  9 10 11 12 13
13 14 15 16 17 18 19      10 11 12 13 14 15 16      14 15 16 17 18 19 20
20 21 22 23 24 25 26      17 18 19 20 21 22 23      21 22 23 24 25 26 27
27 28 29 30 31            24 25 26 27 28 29 30      28 29 30
                          31

      October                   November                  December
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
          1  2  3  4                         1          1  2  3  4  5  6
 5  6  7  8  9 10 11       2  3  4  5  6  7  8       7  8  9 10 11 12 13
12 13 14 15 16 17 18       9 10 11 12 13 14 15      14 15 16 17 18 19 20
19 20 21 22 23 24 25      16 17 18 19 20 21 22      21 22 23 24 25 26 27
26 27 28 29 30 31         23 24 25 26 27 28 29      28 29 30 31
                          30

>>>


相关文章

  • Python标准库之time和datetime

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

  • python3对日期和时间的常见处理

    本篇文章主要介绍在Python3中如何获取时间和日期,并对其进行格式化处理。Python 提供了一个 time 和...

  • Python基础(九): 时间日历

    Python 程序能用很多方式处理日期和时间, 转换日期格式是一个常见的功能 time模块: 提供了处理时间和表示...

  • python的time库最全使用方法

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

  • 18.1_datetime时间模块介绍

    一、背景 Python 有很多种方式处理日期和时间,常见的时间处理的模块是datetime、time、calend...

  • 日期处理和时间处理

    日期和时间处理函数 此SELECT语句正常运行。它检索出一个订单记录,该订单记录的order_date为2005-...

  • MySQL常用日期处理函数和文本处理函数

    常见日期处理函数 NOW([fsp])返回当前的日期和时间,格式为:'YYYY-MM-DD HH:MM:SS' 或...

  • Python--时间模块

    Python提供了很多方式处理日期和时间,转换日期格式是一个常见的功能,time和calendar模块可以用于日期...

  • [快学Python3]日期和时间处理

    概述 在python中, date、time、datetime类提供了一系列处理日期、时间和时间间隔的函数。 在P...

  • 日期和时间处理

    假如代码和注释不一致,那么很有可能两者都是错的--------史蒂夫·乔布斯 PHP的时间概念 在Php中,日期时...

网友评论

      本文标题:python3对日期和时间的常见处理

      本文链接:https://www.haomeiwen.com/subject/itqzfhtx.html