首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python处理日期和时间的基础教程

01 Python处理日期和时间的基础教程

目录

01 解析日期字符串.py

02 格式化日期.py

03 日期的加减.py

04 日期的替换.py

05 获取当前时间.py

06 日期格式化字符串.py

07 常用的属性.py

08 日期加减.py

09 获取日期对象的方式.py

10 人性化时间.py

11 获取日期和时间.py

12 替换指定时间.py

13 解析人性化时间.py

14 小时处理.py

15 获取指定日期之间的每个小时.py

16 获取时间戳.py

解析日期字符串

示例代码:

输出结果:

Parsed Date: 2022-01-01 00:00:00

Parsed Date: 2022-01-01 12:13:14

Parsed Date: 2022-01-02 12:13:14

格式化日期

示例代码:

输出结果:

Parsed Date: 2022-01-01 11:12:13

Formatted Date: 2022-01-01 11:12:13

日期的加减

示例代码:

# 03 日期的加减

import datetime

from ztime import dateutil

date_string = '2022-01-01 11:12:13'

date = dateutil.parser.parse(date_string)

print('Parsed Date:', date)

# 加上10天

new_date = date + datetime.timedelta(days=10)

formatted_date = new_date.strftime('%Y-%m-%d %H:%M:%S')

print('Formatted Date:', formatted_date)

# 减去10天

new_date = date + datetime.timedelta(days=-10)

formatted_date = new_date.strftime('%Y-%m-%d %H:%M:%S')

print('Formatted Date:', formatted_date)

输出结果:

Parsed Date: 2022-01-01 11:12:13

Formatted Date: 2022-01-11 11:12:13

Formatted Date: 2021-12-22 11:12:13

日期的替换

示例代码:

# 04 日期的替换

from ztime import dateutil

date_string = '2022-01-01 11:12:13'

date = dateutil.parser.parse(date_string)

print('Parsed Date:', date)

# 替换年份为2023

# 其他参数:year,month,day,hour,minute,second,microsecond,tzinfo

new_date = date.replace(year=2023)

formatted_date = new_date.strftime('%Y-%m-%d %H:%M:%S')

print('Formatted Date:', formatted_date)

new_date = date.replace(hour=23)

formatted_date = new_date.strftime('%Y-%m-%d %H:%M:%S')

print('Formatted Date:', formatted_date)

输出结果:

Parsed Date: 2022-01-01 11:12:13

Formatted Date: 2023-01-01 11:12:13

Formatted Date: 2022-01-01 23:12:13

获取当前时间

示例代码:

# 01 获取当前时间

import ztime

# 获取本地时区的当前时间

print(ztime.now())

# 获取UTC时间,然后转为本地时区的时间

utc = ztime.utcnow()

utc = utc.to("local")

print(utc)

输出结果:

2024-02-15T18:48:42.096882+08:00

日期格式化字符串

示例代码:

# 03 日期格式化字符串

import ztime

utc = ztime.utcnow()

utc = utc.to("local")

print(utc)

print(utc.format())

print(utc.format("YYYY-MM-DD HH:mm:ss"))

输出结果:

2024-02-15T18:48:50.218306+08:00

2024-02-15 18:48:50

常用的属性

示例代码:

# 07 常用的属性

import ztime

t = ztime.utcnow()

print(t.naive)

print(t.tzinfo)

print(t.year)

print(t.month)

print(t.day)

print(t.hour)

输出结果:

2024-02-15 10:49:02.023246

tzutc()

2024

2

15

10

日期加减

示例代码:

# 05 日期加减

import ztime

utc = ztime.utcnow()

utc = utc.to("local")

utc = utc.shift(hours=-1)

print(utc.humanize(locale="zh-cn"))

utc = utc.shift(days=-1)

print(utc.humanize(locale="zh-cn"))

utc = utc.shift(months=-1)

print(utc.humanize(locale="zh-cn"))

utc = utc.shift(years=-1)

print(utc.humanize(locale="zh-cn"))

utc = utc.shift(years=2)

print(utc.humanize(locale="zh-cn"))

输出结果:

1小时前

1天前

1个月前

1年前

11个月后

获取日期对象的方式

示例代码:

# 06 获取日期对象的方式

from datetime import datetime

import ztime

t = ztime.get(1367900664)

t = ztime.get(1367900664.152325)

t = ztime.get(datetime.utcnow())

t = ztime.get(datetime(2013, 5, 5), "local")

t = ztime.get('2013-05-05 12:30:45', 'YYYY-MM-DD HH:mm:ss')

t = ztime.get(2013, 5, 5)

print(t)

输出结果:

2013-05-05T00:00:00+00:00

人性化时间

示例代码:

# 04 人性化时间

import ztime

utc = ztime.utcnow()

utc = utc.to("local")

print(utc)

print(utc.humanize())

print(utc.humanize(locale="zh-cn"))

输出结果:

2024-02-15T18:49:35.488135+08:00

刚才

刚才

获取日期和时间

示例代码:

# 08 获取日期和时间

import ztime

t = ztime.utcnow()

print(t.date())  # 获取日期

print(t.time())  # 获取时间

输出结果:

2024-02-15

10:49:52.020618

替换指定时间

示例代码:

# 09 替换指定时间

import ztime

t = ztime.utcnow()

print(t.replace(hour=4, minute=40))  # 替换指定时间

输出结果:

2024-02-15T04:40:02.819664+00:00

解析人性化时间

示例代码:

# 10 解析人性化时间

import ztime

t = ztime.utcnow()

print(t.dehumanize("2 days ago"))  # 解析人性化时间

print(t.dehumanize("2天前", locale="zh-cn"))  # 解析人性化时间

输出结果:

2024-02-13T10:50:12.944692+00:00

2024-02-13T10:50:12.944692+00:00

小时处理

示例代码:

# 11 小时处理

import ztime

t = ztime.utcnow()

print(t.span('hour'))  # 获取到小时

print(t.floor('hour'))  # 移除小时后的时间

print(t.ceil('hour'))  # 最大化小时后的时间

输出结果:

(<Arrow [2024-02-15T10:00:00+00:00]>, <Arrow [2024-02-15T10:59:59.999999+00:00]>)

2024-02-15T10:00:00+00:00

2024-02-15T10:59:59.999999+00:00

获取指定日期之间的每个小时

示例代码:

# 12 获取指定日期之间的每个小时

import ztime

from datetime import datetime

start = datetime(2013, 5, 5, 12, 30)

end = datetime(2013, 5, 5, 17, 15)

for r in ztime.ZTime.span_range('hour', start, end):

print(r)

输出结果:

(<Arrow [2013-05-05T12:00:00+00:00]>, <Arrow [2013-05-05T12:59:59.999999+00:00]>)

(<Arrow [2013-05-05T13:00:00+00:00]>, <Arrow [2013-05-05T13:59:59.999999+00:00]>)

(<Arrow [2013-05-05T14:00:00+00:00]>, <Arrow [2013-05-05T14:59:59.999999+00:00]>)

(<Arrow [2013-05-05T15:00:00+00:00]>, <Arrow [2013-05-05T15:59:59.999999+00:00]>)

(<Arrow [2013-05-05T16:00:00+00:00]>, <Arrow [2013-05-05T16:59:59.999999+00:00]>)

(<Arrow [2013-05-05T17:00:00+00:00]>, <Arrow [2013-05-05T17:59:59.999999+00:00]>)

示例代码:

# 02 获取时间戳

import ztime

utc = ztime.utcnow()

utc = utc.to("local")

print(utc)

print(utc.timestamp())

输出结果:

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OWCW-5fgVtnUzLACOxO0zdCg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券