首页 > 编程语言 >【python-日期和时间处理】datetime模块基本使用

【python-日期和时间处理】datetime模块基本使用

时间:2024-10-12 17:15:18浏览次数:8  
标签:01 python timestamp datetime 模块 2023 print now

1. 获取datetime对象

  1. 获取当前datetime对象
  • 方法:datetime.now(cls, tz=None) -> datetime

  • 参数说明:

    tz:时区信息,不传该参数时,默认使用当地时区

  • 示例代码:

now = datetime.now()
print(now)  # 2023-01-05 09:38:43.084062
print(type(now))  # datetime.datetime

如果需要指定tz时区,可以通过pytz.timezone来指定,需要提供时区标识符,时区标识符可在"\Lib\site-packages\pytz\zoneinfo"文件夹下查看

  • 示例代码:
import pytz
from datetime import datetime

dt_mexico = datetime.now(pytz.timezone('America/Mexico_City'))
print(dt_mexico)  # 2023-01-04 20:18:46.943553-06:00
dt_shanghai = datetime.now(pytz.timezone('Asia/Shanghai'))  # 上海和北京同属于东八区,因此可以用“Asia/Shanghai”来作为东八区的标识符
print(dt_shanghai)  # 2023-01-05 10:18:46.943553+08:00
  1. 获取当前utc datetime对象
  • 方法:datetime.utcnow(cls) -> datetime

  • 示例代码:

from datetime import datetime

china_time = datetime.now()
utc_time = datetime.utcnow()

print(china_time)       # 2023-01-05 10:30:26.716563
print(utc_time)         # 2023-01-05 02:30:26.716563

北京属于东八区,比utc时间早8小时,即我们早上十点半的时候,正是utc时区中的凌晨两点半。

  1. 自定义datetime对象

2. datetime,str,timestamp相互转换

2.1 str 转 datetime 和 timestamp

  1. str转datetime
  • 方法:datetime.strptime(_date_string, _format) -> datetime

  • 参数说明:

    • _date_string:时间字符串
    • _format:时间解析格式
  • 示例代码:

from datetime import datetime

beijing_time_str = "2023-01-05 11:45:33"
datetime_beijing = datetime.strptime(beijing_time_str, "%Y-%m-%d %H:%M:%S")
print(type(datetime_beijing))  # <class 'datetime.datetime'>
print(datetime_beijing)  # 2023-01-05 11:45:33

  1. str转timestamp

。。。。。。

2.2 datetime 转 str 和 timestamp

  1. datetime对象 转 str
  • 方法:datetime.strftime(format) -> str
  • 示例代码:
from datetime import datetime

now = datetime.now()
now_str = now.strftime("%Y-%m-%d %H:%M:%S")
print(type(now_str))  # <class 'str'>
print(now_str)  # 2023-01-05 12:09:04
  1. datetime对象 转 timestamp
  • 方法:datetime.timestampe() -> float
  • 示例代码
from datetime import datetime

now = datetime.now()
timestamp = now.timestamp()
print(type(timestamp))  # <class 'float'>
print(timestamp)  # 1672900754.798144

2.3 timestamp 转 datetime对象 和 str

  1. timestamp 转 datetime
  • 方法
datetime.fromstamp(timestamp, tz=None) -> datetime
  • 示例代码
from datetime import datetime

timestamp = 1672899623
now = datetime.fromtimestamp(timestamp)
print(now)  # 2023-01-05 14:20:23
print(type(now))  # <class 'datetime.datetime'>
  1. timestamp 转 utc datetime对象
  • 方法
datetime.utcfromstamp(timestamp, tz=None) -> datetime
  • 示例代码
from datetime import datetime

timestamp = 1672899623
now = datetime.utcfromtimestamp(timestamp)
print(now)  # 2023-01-05 06:20:23
print(type(now))  # <class 'datetime.datetime'>

3. datetime实例方法

  1. datetime.timestampe() -> float
  • 示例代码
from datetime import datetime

now = datetime.now()
timestamp = now.timestamp()
print(type(timestamp))  # <class 'float'>
print(timestamp)  # 1672900754.798144
  1. datetime.timetuple() -> time.struct_time
  • 示例代码
from datetime import datetime

now = datetime.now()
timetuple = now.timetuple()
print(type(timetuple))  # <class 'time.struct_time'>
print(timetuple)  # time.struct_time(tm_year=2023, tm_mon=1, tm_mday=5, tm_hour=14, tm_min=44, tm_sec=3, tm_wday=3, tm_yday=5, tm_isdst=-1)

  1. datetime.replace(year=None, month=None, day=None, hour=None, minute=None, second=None, microsecond=None, tzinfo=True, *, fold=None) -> datetime
  • 示例代码
>>> from datetime import datetime
>>> now = datetime.now()
>>> now
datetime.datetime(2023, 1, 5, 14, 56, 10, 892657)
>>> now.replace(year=2022)
datetime.datetime(2022, 1, 5, 14, 56, 10, 892657)

4. datetime类方法

1.datetime.fromisocalendar(year, week, day) -> datetime

  • 功能说明

    从国际标准化日历中获得相应的datetime对象

  • 示例代码

>>> datetime.fromisocalendar(2023, 1, 1)
datetime.datetime(2023, 1, 2, 0, 0)  # 2023年中第1个星期的第1天是1月2号
  1. datetime.fromisoformat(date_string) -> datetime
  • 功能说明

    将符合isoformat时间格式的字符串转为datetime对象。

    isoformat指的是符合国际标准ISO8601的日期和时间表示方式。该标准旨在提供一套没有歧义的表示格式,并具有以下规则:

    • Year first, followed by month, then the day, each separated by a hyphen ("-")(按年月日的顺序先后排列,并以'-'进行分隔)
    • Numbers less than 10 preceded by a leading zero(小于10的数字前面加0)
  • 示例代码

>>> from datetime import datetime
>>> datetime.fromisoformat("2022-01-05")
datetime.datetime(2022, 1, 5, 0, 0)
>>> datetime.fromisoformat("2022-01-05 15:24:23")
datetime.datetime(2022, 1, 5, 15, 24, 23)
>>> datetime.fromisoformat("2022-01-05T15:24:23")
datetime.datetime(2022, 1, 5, 15, 24, 23)
>>> datetime.fromisoformat("2022-01-05T15:24:23.434")
datetime.datetime(2022, 1, 5, 15, 24, 23, 434000)

标签:01,python,timestamp,datetime,模块,2023,print,now
From: https://www.cnblogs.com/berlin-fly/p/18460914

相关文章

  • 【python-数据分析】pandas数据提取
    importpandasaspd1.直接索引df=pd.DataFrame({'AdmissionDate':['2021-01-25','2021-01-22','2021-01-20','2021-01-18','2021-01-17','2021-01-17','2021-01-2......
  • 【python日期和时间处理】time模块基本使用
    1.time模块中三种时间格式时间戳time模块获取各种精度的时间戳importtimetimestamp=time.time()timestamp_s=int(time.time())#s精度timestamp_ms=int(time.time()*1000)#ms精度timestamp_us=int(time.time()*1000_000)#μs精度timestamp_ns=t......
  • python __new__和__init__的区别
    简介__new__和__init__都是Python中的特殊方法,它们在对象生命周期中起到不同的作用。用法1、__new__方法:__new__是一个静态方法,用于创建一个新的对象实例。当你调用一个类时,__new__方法是第一个被调用的方法。它的主要任务是分配内存空间,并返回一个新创建的对象实例。通常情况......
  • python 实现工厂类方法
    #工厂类方法1,这些类的实例方法名相同classFruit(object):def__init__(self):passdefprint_color(self):pass#工厂类方法2classApple(Fruit):def__init__(self):passdefprint_color(self):print("applei......
  • 一文了解Python反射机制(很详细)
    https://blog.csdn.net/weixin_40025666/article/details/134456717 https://www.cnblogs.com/mengdie1978/p/17425581.html 一、反射的概念python的反射机制,核心就是利用字符串去已存在的模块中找到指定的属性或方法,找到方法后自动执行——基于字符串的事件驱动。二、熟悉......
  • 一文弄懂 Python os.walk(),文件处理和目录遍历
    ......
  • python redis使用教程
    文章目录安装Redispython安装redis库使用Python连接Redis使用Redis实现缓存Redis中的常用缓存操作Redis缓存策略发布与订阅事务安装RedisRedisWindows最新安装教程(2024.10.10)python安装redis库pipinstallredisE:\Redis-x64-3.2.......
  • Python cachetools常用缓存算法汇总
    文章目录cachetools介绍缓存操作设置数据生存时间(TTL)自定义缓存策略缓存装饰器缓存清理cachetools超过缓存数量maxsizecachetools使用示例cachetools介绍cachetools:是一个Python第三方库,提供了多种缓存算法的实现。缓存是一种用于临时存储计算结果的技术,以......
  • python延时效果print逐个打印字符
    我想让python打印类似“正在加载。。。”,把每个句号逐个打印出来,并且它们之间的打印间隔睡眠时间0.5秒间隔实现方法:#!/bin/envpython#-*-coding:utf-8-*-importsysimporttimedefslow(msg,text):print(msg,end='')foriintext:print(i,end=''......
  • python中_init_.py 到底有啥用?
     1.__init__.py是个啥?__init__.py,这个文件名就是用来“初始化”的。在Python里,它主要用于标识一个目录是一个“包(Package)”。在项目里新建了一个文件夹,要让它成为一个可供导入的模块包,最简单的办法就是在里面加一个__init__.py。比如,咱们有个项目结构如下:my_project/......