跳过正文
  1. Teches/
  2. 程序语言/
  3. python/
  4. 字符处理/

时间字符串

·133 字·1 分钟
目录

1. datetime系列
#

一般来说用from datetime import datetime

1. .fromtimestamp
#

接收一个浮点ts参数,返回datetime结构体,可接续使用datetime内置方法
经典场景:ts -> 格式化timestr
datetime.fromtimestamp(ts).strftime('%Y-%m-%d-%H:%M:%S')

</> python
1def ts2timestr(ts:float) -> str:
2    return datetime.fromtimestamp(ts).strftime('%Y-%m-%d-%H:%M:%S')

2. .strptime
#

接收1. 格式化timestr, 2. 格式format;返回datetime结构体(接续使用其他内置方法)
经典场景:格式化timestr -> ts
datetime.strptime(timestr, pattern).timestamp()

</> python
1def timestr2ts(timestr, pattern='%Y-%m-%d %H:%M:%S'):
2    return datetime.strptime(timestr, pattern).timestamp()

3. .replace
#

  1. python hint
</> python
 1(method) def replace(
 2    year: SupportsIndex = ...,
 3    month: SupportsIndex = ...,
 4    day: SupportsIndex = ...,
 5    hour: SupportsIndex = ...,
 6    minute: SupportsIndex = ...,
 7    second: SupportsIndex = ...,
 8    microsecond: SupportsIndex = ...,
 9    tzinfo: _TzInfo | None = ...,
10    *,
11    fold: int = ...
12) -> datetime

一般使用关键字参数指定参数传参:
.replace(hour=23, minute=59, second=59, microsecond=0)

  1. 使用场景:
    1. 获取当天的23:59:59的timestamp值
    2. 进阶:获取任意一天的末尾(23:59:59)ts值。使用datetime.timedelta对象控制天数
</> python
1def get_end_of_day(base=datetime.now(), delta=timedelta(days=0)):
2    return (base + delta).replace(hour=23, minute=59, second=59, microsecond=0).timestamp()