【Python】时间模块

在python中,定义和操控时间常用到的是datetime和time这两个模块

datetime

from datetime import datetime,date,timedelta
from dateutil.relativedelta import relativedelta
  • 获取当前时间
#  获取当前时间
datetime.now()
# datetime.datetime(2020, 7, 15, 10, 58, 40, 492463)
# 转换成指定形式
datetime.now().strftime('%Y%m%d')
# '20200715'
datetime.now().strftime('%Y-%m-%d %H:%M:%S')
# '2020-07-15 11:03:52'
  • 日期的加减
# 加一天(减一天只需要把'+'换成'-'即可,这里不罗列了)
datetime.now() + timedelta(days=1)
# datetime.datetime(2020, 7, 16, 11, 6, 22, 113682)
datetime.now() + relativedelta(days=1)
# datetime.datetime(2020, 7, 16, 11, 6, 22, 976375)
# 加一个星期
datetime.now() + timedelta(weeks=1)
# datetime.datetime(2020, 7, 22, 11, 9, 19, 658757)
datetime.now() + relativedelta(weeks=1)
# datetime.datetime(2020, 7, 22, 11, 8, 40, 276447)
# 加一个月
datetime.now() + relativedelta(months=1)
# datetime.datetime(2020, 8, 15, 11, 7, 43, 399945)
# 加一年
datetime.now() + relativedelta(years=1)
# datetime.datetime(2021, 7, 15, 11, 8, 2, 161833)

除此之外,也可以通过calendar来实现 日期的加减,如月份的加减

import calendar
def addmonth(date, months, day):
    month = date.month - 1 + months
    year = date.year + month / 12
    month = month % 12 + 1
    day = min(date.day, calendar.monthrange(year, month)[1])
    return date.replace(year=year, month=month, day=day)
  • 两个日期之差
datetime.now() - datetime(2019,1,1)
# datetime.timedelta(days=561, seconds=79068, microseconds=693734)
(datetime.now() - datetime(2019,1,1)).days
# 561

time

import time
import calendar
  • 获取当前时间
time.time()
# 1595214783.199486
time.asctime()
# 'Mon Jul 20 11:13:45 2020'
time.ctime()
# 'Mon Jul 20 11:13:45 2020'
time.gmtime()
# time.struct_time(tm_year=2020, tm_mon=7, tm_mday=20, tm_hour=3, tm_min=15, tm_sec=57, tm_wday=0, tm_yday=202, tm_isdst=0)
  • 当前时区
time.timezone / time.altzone
# -28800
time.tzname
# ('CST', 'CST') 

插入时区小知识

时区常见的有GMT、UTC、 DST、 CST, 分别是指:

  • Greenwich Mean Time 格林威治标准时间, 即英国伦敦格林威治定为0°经线开始的地方;
  • Coordinated Universal Time 世界协调时间,经严谨计算得到的时间,精确到秒,误差在0.9s以内, 是比GMT更为精确的世界时间;
  • Daylight Saving Time 夏令时,为了利用夏天充足的光照而将时间调早一个小时,北美、欧洲的许多国家实行夏令时
  • CST 比较有意思的是: 它是四个不同时区的缩写,有Central Standard Time (USA) UT-6:00 美国标准时间、Central Standard Time (Australia) UT+9:30 澳大利亚标准时间、China Standard Time UT+8:00 中国标准时间、Cuba Standard Time UT-4:00 古巴标准时间
    `
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值