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

2024年 2月 16日 74.1k 0

解析日期字符串

示例代码:

# 01 解析日期字符串
from ztime import dateutil

date_string = '2022-01-01'
date = dateutil.parser.parse(date_string)
print('Parsed Date:', date)

date_string = '2022-01-01 12:13:14'
date = dateutil.parser.parse(date_string)
print('Parsed Date:', date)

date_string = '2022-01-02T12:13:14'
date = dateutil.parser.parse(date_string)
print('Parsed Date:', date)

输出结果:

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

格式化日期

示例代码:

# 02 格式化日期
from ztime import dateutil

date_string = '2022-01-01 11:12:13'
date = dateutil.parser.parse(date_string)
print('Parsed Date:', date)

formatted_date = 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-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'))  # 最大化小时后的时间

输出结果:

(, )
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)

输出结果:

(, )
(, )
(, )
(, )
(, )
(, )

获取时间戳

示例代码:

# 02 获取时间戳

import ztime

utc = ztime.utcnow()
utc = utc.to("local")
print(utc)
print(utc.timestamp())

输出结果:

2024-02-15T18:50:47.550633+08:00
1707994247.550633

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论