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)

【python-日期和时间处理】datetime模块基本使用的更多相关文章

  1. 日期和时间(datetime模块)

    前言: 参考:https://blog.csdn.net/weixin_42232219/article/details/89838580 在 python 中,datetime 是对日期数据进行处理 ...

  2. Python之基本的日期与时间转换 datetime、 dateutil模块

    简单举例datetime模块 from datetime import timedelta,datetime a = timedelta(days=2, hours=6) b = timedelta( ...

  3. Python 日期和时间 —— datetime

    Python 日期和时间 —— datetime Python提供了多个内置模块用于操作日期时间,如calendar,time,datetime.calendar用于处理日历相关 :time提供的接口 ...

  4. Python:日期和时间的处理模块及相关函数

    Python:日期和时间的处理模块及相关函数 Python 提供 time 模块和 calendar 模块用于格式化日期和时间. 一.时间戳 在Python中,时间戳是以秒为单位的浮点小数,它是指格林 ...

  5. Python 日期和时间(转)

    Python 日期和时间 Python程序能用很多方式处理日期和时间.转换日期格式是一个常见的例行琐事.Python有一个 time 和 calendar 模组可以帮忙. 什么是Tick? 时间间隔是 ...

  6. (转)Python 日期和时间

    转自http://www.runoob.com/python/python-date-time.html Python 日期和时间 Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见 ...

  7. Python第十五天 datetime模块 time模块 thread模块 threading模块 Queue队列模块 multiprocessing模块 paramiko模块 fabric模块

    Python第十五天  datetime模块 time模块   thread模块  threading模块  Queue队列模块  multiprocessing模块  paramiko模块  fab ...

  8. 【310】◀▶ Python 日期和时间

    参考: python 时间日期计算 Python 日期和时间(菜鸟教程) 8.1. datetime — Basic date and time types python中datetime模块中dat ...

  9. Python日期和时间

    日期和时间主要有两个库,datetime和time. datetime: 日期:datetime.date.today() 日期和时间:datetime.datetime.now() 1000天之后: ...

  10. Python 日期和时间_python 当前日期时间_python日期格式化

    Python 日期和时间_python 当前日期时间_python日期格式化 Python程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能. Python 提供了一个 time 和 cal ...

随机推荐

  1. 大型IM工程重构实践:企业微信Android端的重构之路

    本文由腾讯技术yeconglu分享,原题"企业微信大型Android系统重构之路",下文进行了排版和内容优化等. 1.引言 企业微信本地部署版(下文简称为本地版)是从2017年起, ...

  2. MAC 使用问题汇总

    1. 在.zshrc中添加的环境变量不起作用 Answer: 需要把/etc/zshrc文件复制到 ~, 并命名为.zshrc,然后设置环境变量即可:

  3. 在 .NET 9 中使用 Scalar 替代 Swagger

    前言 在.NET 9发布以后ASP.NET Core官方团队发布公告已经将Swashbuckle.AspNetCore(一个为ASP.NET Core API提供Swagger工具的项目)从ASP.N ...

  4. Spring Cloud认知学习(一)--Eureka使用、Ribbon使用

    Spring Cloud是一个微服务架构,他有多种组件来管理微服务的方方面面.Spring Cloud是用于构建微服务开发和治理的框架的集合. Spring Cloud是最热门的Java技术毋庸置疑. ...

  5. 部署 Browser-Use WebUI + DeepSeek 实现浏览器AI自动化

    一.安装部署 1.安装 python3.11 或以上版本   2.安装browser-use pip install browser-use     3.安装 Playwright playwrigh ...

  6. Hetao P1156 最大战力 题解 [ 绿 ][ 二分 ][ 最大子段和 ]

    最大战力 Vjudge 原题 题解 形式化题意 给定两个数组 \(a[n]\) 和 \(b[n]\) ,需要在数组 \(b\) 中选择一个区间 \(b[l,r]\) ,替换掉区间 \(a[l,r]\) ...

  7. 最长不降子序列 n log n 方案输出与 Dilworth 定理 - 动态规划模板

    朴素算法 不必多说,\(O(n^2)\) 的暴力 dp 转移. 优化算法 时间为 \(O(n \log n)\) ,本质是贪心,不是 dp . 思路是维护一个单调栈(手写版),使这个栈单调不降. 当该 ...

  8. 水往低处流:最大流的最高标号预留推进算法(HLPP)

    上期回顾:https://www.cnblogs.com/ofnoname/p/18678895 之前我们已经介绍了最大流问题的基本定义,让从源点流出的总流量达到最大,同时不违反任何管道的运输能力限制 ...

  9. DeepSeek 解答了困扰我五年的技术问题。时代确实变了!

    你好呀,我是歪歪. 五年前,2020 年,我写文章的时候曾经遇到过一个技术问题,百思不得其解,当时把那个问题归类为玄学问题. 后来也会偶尔想起这个问题,但是我早就不纠结于这个问题了,没再去研究过. 前 ...

  10. [SDOI2009] 晨跑 题解

    每个点拆成入点和出点. 发现每个点.每条边都只能经过一次,所以所有边的容量都是 \(1\). #include<bits/stdc++.h> #define ll long long us ...