python_常用日期及转换
1 | from datetime import date, datetime, timedelta |
datetime_module
获取当前日期、时间
- 详细时间
- 简单时间
1 | t = datetime.now() |
Output:
1 | datetime.datetime(2022, 4, 5, 0, 41, 14, 961976) |
1 | t = date.today() |
Output:
1 | datetime.date(2022, 4, 5) |
日期转星期
- weekday Monday == 0 … Sunday == 6
- isoweekday Monday == 1 … Sunday == 7
1 | t = date.today() |
Output:
1 | 2 |
1 | t = date(2022, 4, 4) |
Output:
1 | 1 |
字符串转与datetime格式转化
strptime()
传入'2022/4/4'
斜杠的格式 >>>>>>datetime.datetimedatetime()
传入整型 年,月,日,时,分,秒 >>>>>> datetime.datetime.strftime()
传入格式如'%Y%m%d'
或者'%Y-%m-%d'
>>>>>>str- f-string方法,
f'{datetime:'%Y%m%d'}
>>>>>>>>>>>>str- 这种方法快捷,而且相当灵活,用法多样
- %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 当前时区的名称
1 | td = datetime.strptime('2022/4/4', '%Y/%m/%d') |
Output:
1 | datetime.datetime |
1 | t = datetime.now() |
Output:
1 | '22, 2022, 04, 05, 00, 41, 15' |
1 | datetime.max |
Output:
1 | datetime.datetime(9999, 12, 31, 23, 59, 59, 999999) |
1 | t = datetime.now() |
Output:
1 | 1649090475.069974 |
pandas_module中的时间函数
pd.date_range()
列出期间的所有日期- Returns rng : DatetimeIndex
- Of the four parameters
start
,end
,periods
, andfreq
,exactly three must be specified. Iffreq
is omitted, the resulting,DatetimeIndex
will haveperiods
linearly spaced elements betweenstart
andend
(closed on both sides). - start : str or datetime-like, optional, Left bound for generating dates.
- end : str or datetime-like, optional, Right bound for generating dates.
- periods : int, optional, Number of periods to generate.
- freq : str or DateOffset, default ‘D’, Frequency strings can have multiples, e.g. ‘5H’. See
:ref:here <timeseries.offset_aliases>
for a list of frequency aliases.
pd.period_range()
- Of the three parameters:
start
,end
, andperiods
, exactly two must be specified. - start : str or period-like, default None,Left bound for generating periods.
- end : str or period-like, default None,Right bound for generating periods.
- periods : int, default None,Number of periods to generate.
- freq : str or DateOffset, optional,Frequency alias. By default the freq is taken from
start
orend
if those are Period objects. Otherwise, the default is"D"
fordaily frequency. - name : str, default None, Name of the resulting PeriodIndex.must be specified.
- Of the three parameters:
pd.to_datetime()
pd.to_timedelta()
生成日期范围
= pd.date_range
- pd.period_range
1 | pd.date_range('2022-4-1', '2022-4-10') |
Output:
1 | DatetimeIndex(['2022-04-01', '2022-04-02', '2022-04-03', '2022-04-04', |
1 | pd.period_range('2022-4-13', '2022-8-1', freq='M') |
Output:
1 | PeriodIndex(['2022-04', '2022-05', '2022-06', '2022-07', '2022-08'], dtype='period[M]') |
转换格式
- datetime64[ns]
1 | pd.to_datetime("2022-4-5") |
Output:
1 | Timestamp('2022-04-05 00:00:00') |