Python3之datetime

0.000 000 001 毫秒 = 1皮秒
0.000 001 毫秒 = 1纳秒
0.001 毫秒 = 1微秒
1000 毫秒 = 1秒
一秒等于1000毫秒,等于10的12次方皮秒。

获取当前日期

>>> import datetime
>>> print(datetime.date.today())
2018-11-22

获取当前日期时间

>>> from datetime import datetime
>>> now = datetime.now() # 获取当前datetime
>>> print(now)  # 输出如下日期-时间(精确到微秒,小数点后6位)
2018-10-31 20:55:24.723183
>>> print(type(now))
<class 'datetime.datetime'>

注意到datetime是模块,datetime模块还包含一个datetime类,通过from datetime import datetime导入的才是datetime这个类。
如果仅导入import datetime,则必须引用全名datetime.datetime。
datetime.now()返回当前日期和时间,其类型是datetime。
datetime.datetime.now().date():返回当前日期时间的日期部分;
datetime.datetime.now().time():返回当前日期时间的时间部分。

now()接收一个参数tz,也就是timezone时区,如果这个参数不存在时,它的表现等同于today()

获取指定日期和时间

要指定某个日期和时间,我们直接用参数构造一个datetime:

>>> from datetime import datetime
>>> dt = datetime(2020, 10, 1 , 0 , 0)  # 用指定日期时间创建datetime
>>> print(dt)
2020-10-01 00:00:00

datetime类型和str类型相互转换

datetim转为str

>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2018, 11, 6, 10, 19, 11, 571810)
>>> strf = now.strftime('%Y-%m-%d %H:%M:%S')  # 转换
>>> strf
'2018-11-06 10:19:11'
>>> type(strf)
<class 'str'>

str转为datetime

>>> strp = datetime.datetime.strptime(strf, '%Y-%m-%d %H:%M:%S') # 转换
>>> strp
datetime.datetime(2018, 11, 6, 10, 19, 11)
>>> type(strp)
<class 'datetime.datetime'>
>>> datetime.datetime.strptime("2019-01-01", '%Y-%m-%d').date()
datetime.date(2019, 1, 1)

datetime加减

对日期和时间进行加减实际上就是把datetime往后或往前计算,得到新的datetime。加减可以直接用+和-运算符,不过需要导入timedelta这个类:

>>> from datetime import datetime, timedelta
>>> now = datetime.now()
>>> now
datetime.datetime(2015, 5, 18, 16, 57, 3, 540997)
>>> now + timedelta(hours=10)
datetime.datetime(2015, 5, 19, 2, 57, 3, 540997)
>>> now - timedelta(days=1)
datetime.datetime(2015, 5, 17, 16, 57, 3, 540997)
>>> now + timedelta(days=2, hours=12)
datetime.datetime(2015, 5, 21, 4, 57, 3, 540997)

使用timedelta你可以很容易地算出前几天和后几天的时刻。

>>> from datetime import datetime
>>> a1 = datetime.now()
>>> a1
datetime.datetime(2018, 10, 31, 20, 43, 59, 93209)
>>> a2 = datetime.now()
>>> a2
datetime.datetime(2018, 10, 31, 20, 44, 22, 511396)
>>> a = a2 - a1
>>> a
datetime.timedelta(0, 23, 418187)
>>> a.seconds
23
>>> dir(a)
['__abs__', '__add__', '__bool__', '__class__', '__delattr__',
'__dir__', '__divmod__', '__doc__', '__eq__', '__floordiv__',
'__format__', '__ge__', '__getattribute__', '__gt__',
'__hash__', '__init__', '__init_subclass__', '__le__',
'__lt__', '__mod__', '__mul__', '__ne__', '__neg__',
'__new__', '__pos__', '__radd__', '__rdivmod__',
'__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', 
'__rmod__', '__rmul__', '__rsub__', '__rtruediv__', 
'__setattr__', '__sizeof__', '__str__', '__sub__', 
'__subclasshook__', '__truediv__', 

'days', 'max', 'microseconds', 'min', 'resolution', 
'seconds', 'total_seconds']

python的格式化符号

时间和日期格式化符号说明:

# 常用
%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 # 当前时区的名称
%% # %号本身

datetimePython中的一个内置模块,用于处理日期和时间。它提供了日期、时间、时间间隔等对象,以及各种日期和时间的计算和格式化方法。 要使用datetime模块,首先需要导入它: ```python import datetime ``` 然后,你可以使用datetime模块中的各种类和方法来处理日期和时间。下面是一些常用的datetime类和方法: 1. datetime.date:表示日期的类,包括年、月、日。 - 创建日期对象:`date_obj = datetime.date(year, month, day)` - 获取当前日期:`current_date = datetime.date.today()` - 获取日期的年、月、日:`year = date_obj.year`、`month = date_obj.month`、`day = date_obj.day` 2. datetime.time:表示时间的类,包括时、分、秒、微秒。 - 创建时间对象:`time_obj = datetime.time(hour, minute, second, microsecond)` - 获取当前时间:`current_time = datetime.datetime.now()` - 获取时间的时、分、秒:`hour = time_obj.hour`、`minute = time_obj.minute`、`second = time_obj.second` 3. datetime.datetime:表示日期和时间的类,包括年、月、日、时、分、秒、微秒。 - 创建日期和时间对象:`datetime_obj = datetime.datetime(year, month, day, hour, minute, second, microsecond)` - 获取当前日期和时间:`current_datetime = datetime.datetime.now()` - 获取日期和时间的各个部分:与date和time类似的用法 4. datetime.timedelta:表示时间间隔的类,可以进行日期和时间的加减操作。 - 创建时间间隔对象:`delta_obj = datetime.timedelta(days, seconds, microseconds, milliseconds, minutes, hours, weeks)` - 时间间隔的加减操作:`new_datetime = old_datetime + delta_obj`、`new_date = old_date - delta_obj` 5. 其他常用方法: - 格式化日期和时间为字符串:`formatted_str = datetime_obj.strftime(format_str)` - 解析字符串为日期和时间对象:`datetime_obj = datetime.datetime.strptime(date_str, format_str)` 这只是datetime模块的一小部分功能,更多的用法和方法可以参考Python官方文档或其他教程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值