Python日期时间datetime库与dateutil库典型示例与详解(3)--datetime库time类常用例子

本文例子用

from datetime import *

关于python的import和名字空间,请参考之前文章:

《Python日期时间datetime库与dateutil库典型示例与详解(1)--datetime库简介&datetime库date类常用例子》

time类只有时/分/秒/毫秒的时间单位,没有日期:

1、获取当前时间

time类并没有today()方法,先生成datetime对象,再用datetime类的time()方法转换为time()对象
Mytime = datetime.today().time()

2、生成一个指定时间的time对象

(1)生成指定日期时间的time对象时4个参数,分别为小时、分、秒、微秒,

Mytime = time (12,12,12,12)

(2)没有必填参数,可不带参数生成,没填视为0

Mytime = time ()

#生成一个00:00:00.000000的time对象

(3)与time类配合一起使用的更多是datetime库tzinfo和timezone类(时区相关),应用中涉及到不同时区时间处理的需要配合使用;

3、获取time对象的各时间单位的数值(返回值为int型)

hour = Mytime.hour

minute = Mytime.minute

second = Mytime.second

microsecond = Mytime.microsecond

4、修改time对象的各时间单位的数值replace( )

方法与上述的修改date和datetime对象的各时间单位的数值一样:
Mytime.replace(hour=23,minute =1)
# time对象的各时间单位可以单独和组合修改

5、time对象转换为字符串

也是有三种方法:

(1)str类型转换

(2)time类的isoformat()

(3)time类的strftime()

用法与datetime对象转换为字符串完全类似

详见系列文章:《Python日期时间datetime库与dateutil库典型示例与详解(2)--datetime库datetime类常用例子》

6、用字符串生成一个指定的time对象

字符串生成一个指定的time对象有两种途径:

(1)用time类的fromisoformat ()【注意:python3.7版本才有此方法】
更多官方例子:

time.fromisoformat('04:23:01')

datetime.time(4, 23, 1)

time.fromisoformat('T04:23:01')

datetime.time(4, 23, 1)

time.fromisoformat('T042301')

datetime.time(4, 23, 1)

time.fromisoformat('04:23:01.000384')

datetime.time(4, 23, 1, 384)

time.fromisoformat('04:23:01,000')

datetime.time(4, 23, 1, 384)

time.fromisoformat('04:23:01+04:00')

datetime.time(4, 23, 1, tzinfo=datetime.timezone(datetime.timedelta(seconds=14400)))

time.fromisoformat('04:23:01Z')

datetime.time(4, 23, 1, tzinfo=datetime.timezone.utc)

time.fromisoformat('04:23:01+00:00')

datetime.time(4, 23, 1, tzinfo=datetime.timezone.utc)

(2) strptime()方法
time类并没有strptime()方法,但是strptime()灵活度高,适用场景广,我们可以先生成datetime对象,再用datetime类的time()方法转换为time对象,更多的strptime()使用例子,详见系列文章:《Python日期时间datetime库与dateutil库典型示例与详解(2)--datetime库datetime类常用例子》
但与用datetime类strptime()方法生成date对象略有不同,date对象可以直接这样:
Mydate = datetime.strptime("2023-11-16", "%Y-%m-%d").date()
如果我们:
Mytime = datetime.strptime("12:12:12.999", "%H:%M:%S.%f").time()

会报错,因为生成datetime对象时必须要有日期,我们还需要调整.

时间存在一个time_string字符串中,例如中文的时间"21时23分22秒",那我们随便补个字符串去填充下生成datetime对象需要的“年月日”,示例如下:

time_string = "21时23分22秒"

Mytime = datetime.strptime("1-1-1"+time_string,"%Y-%m-%d%H时%M分%S秒").time()

你可能感兴趣的:(python基础,python,开发语言)