python从零开始--12 常用的日期与时间方法

  Python中对日期和时间的处理,主要用calendar和time两个模块。

  Time:  在了解time前,先了解两个概念“时间戳”和“时间元组”。“时间戳”是指格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。Python中获取当前时间戳是用time模块下的time()方法:

import time

time_stamp = time.time()
print(time_stamp)
D:\pythonProjects\venv\Scripts\python.exe D:/pythonProjects/100Prac/52.py
1525762868.533137  # 返回的秒数

  "时间元组”是将年、月、日、小时、分钟、秒、一周的第几日、一年的第几日和是否夏令时做为元组元素来组成一个元组,这个元组就叫“时间元组”,其index和属性的对应关系如下表:

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

  下面的代码,先获取当前的时间戳,然后用localtime()返回时间元组,接着用asctime()方法,将时间元组转换为一个可读的形式。

import time

time_stamp = time.time()
print(time_stamp)

localtime = time.localtime(time_stamp)# 将时间戳转为时间元组
print(time.asctime())#  将时间元组转换为一个可读的形式
D:\pythonProjects\venv\Scripts\python.exe D:/pythonProjects/100Prac/52.py
1525765988.9266133
Tue May  8 15:53:08 2018

  下面的代码,用来将当前时间展现为一个易读的字符串:

import time
import datetime

time_stamp = time.time()
localtime = time.localtime(time_stamp)# 将时间戳转为时间元组
print(time.asctime())#  将时间元组转换为一个可读的形式
print(time.strftime("%Y-%m-%d %H:%M:%S", localtime)) # 将时间元组转为一个易读的格式

# 另外一种常用的写法
date_time = datetime.datetime.now()   # 将日期格式转化为字符串格式
print(date_time.strftime("%Y-%m-%d %H:%M:%S")) # 格式中不能含中文字符

# sleep在自动化脚本中也经常使用
time.sleep(3) # 推迟现成的运行,参数是秒
  这个格式化中的参数说明如下: 

  • %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

  感觉实际使用的场景不多,我只用过下面的weekday()方法;后面遇到有其它的应用场景后,我再添加相关说明。

import calendar

print(calendar.weekday(2018, 5, 8)) # 返回给定日期的日期码。0(星期一)到6(星期日)。月份为 1(一月) 到 12(12月)。

你可能感兴趣的:(python从零开始)