Python --datetime模块

这篇具有很好参考价值的文章主要介绍了Python --datetime模块。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1, 获取datetime时间

2, datetime与timestamp转换

2-1, datetime转timestamp

2-2, timestamp转datetime

3, str格式与datetime转换

3-1, datetime转str格式

3-2, str格式转datetime

4, datetime运算

4-1, datetime之间运算

4-2, 通过timedelta加减

5, 时区转换

5-1, 本地时间转换为UTC时间

5-2, 时区间转换

6, 带时区datetime转换为timestamp


datetime是python的内置模块, 直接导入即可使用

1, 获取datetime时间

In [59]: from datetime import datetime

# 当前时间转换为datetime格式
In [60]: now = datetime.now()

In [61]: now
Out[61]: datetime.datetime(2023, 8, 29, 21, 58, 51, 671852)

# 设置一个datetime时间
In [64]: dt = datetime(2023, 8, 29, 22, 1, 10)

In [65]: dt
Out[65]: datetime.datetime(2023, 8, 29, 22, 1, 10)

2, datetime与timestamp转换

2-1, datetime转timestamp

In [92]: from datetime import datetime

In [93]: now = datetime.now()

# 获取当前系统时间的datetime
In [94]: now
Out[94]: datetime.datetime(2023, 8, 29, 15, 46, 41, 445550)

# datetime转换为timestamp
In [96]: now.timestamp()
Out[96]: 1693295201.44555

2-2, timestamp转datetime

# timestamp转换为datetime
In [80]: t = datetime.now().timestamp()

In [81]: t
Out[81]: 1693317944.383471

In [82]: datetime.fromtimestamp(t)
Out[82]: datetime.datetime(2023, 8, 29, 22, 5, 44, 383471)

# 转换为标准的utc的datetime
In [84]: datetime.utcfromtimestamp(t)
Out[84]: datetime.datetime(2023, 8, 29, 14, 5, 44, 383471)

3, str格式与datetime转换

3-1, datetime转str格式

datetime转换为str,使用的方法是strftime()

# 获取时间的datetime格式
In [85]: now = datetime.now()

In [86]: now
Out[86]: datetime.datetime(2023, 8, 29, 22, 8, 32, 807460)

# datetime格式转换为字符串格式
In [87]: now.strftime('%Y-%m-%d %H:%M:%S')
Out[87]: '2023-08-29 22:08:05'

格式化字符:

%a:星期英文格式缩写

In [134]: datetime.now().strftime('%a')
Out[134]: 'Tue'

%A:星期英文格式全写

In [135]: datetime.now().strftime('%A')
Out[135]: 'Tuesday'

%w:星期数字格式

In [136]: datetime.now().strftime('%w')
Out[136]: '2'

%d:数字格式当月号数

# 当月29号
In [137]: datetime.now().strftime('%d')
Out[137]: '29'

%b:月份英文格式缩写

In [138]: datetime.now().strftime('%b')
Out[138]: 'Aug'

%B:月份英文格式全写

In [139]: datetime.now().strftime('%B')
Out[139]: 'August'

%m:月份数字格式

In [140]: datetime.now().strftime('%m')
Out[140]: '08'

%y:年份,仅显示后两位

# 表示23年
In [141]: datetime.now().strftime('%y')
Out[141]: '23'

%Y:年份,显示所有

In [142]: datetime.now().strftime('%Y')
Out[142]: '2023'

%H:24小时制显示小时

# 表示是16点钟
In [143]: datetime.now().strftime('%H')
Out[143]: '16'

%I:12小时制显示小时

# 表示四点钟
In [144]: datetime.now().strftime('%I')
Out[144]: '04'

%p:回显pm或am

In [146]: datetime.now().strftime('%p')
Out[146]: 'PM'

%M:分钟数

In [147]: datetime.now().strftime('%M')
Out[147]: '31'

%S:秒数

In [148]: datetime.now().strftime('%S')
Out[148]: '41'

%f:毫秒数

In [149]: datetime.now().strftime('%f')
Out[149]: '953566'

%j:表示当前是今年的第多少天

# 本年第241天
In [152]: datetime.now().strftime('%j')
Out[152]: '241'

%U:当年的第多少周(星期天作为一周第一天)

# 本年的第35周
In [153]: datetime.now().strftime('%U')
Out[153]: '35'

%w:当年的第多少周(星期一作为一周第一天)

# 本年第35周
In [155]: datetime.now().strftime('%W')
Out[155]: '35'

%c:英文格式的日期时间格式

In [160]: datetime.now().strftime('%c')
Out[160]: 'Tue Aug 29 16:42:30 2023'

%X:时间格式, 以“:”分割

In [161]: datetime.now().strftime('%X')
Out[161]: '16:43:00'

%x:日期格式,以反斜杠分割

In [162]: datetime.now().strftime('%x')
Out[162]: '08/29/23'

3-2, str格式转datetime

str格式的时间转换为datetime使用strptime方法

In [89]: str_time = '2023-08-29 22:08:32'

In [90]: datetime.strptime(str_time, '%Y-%m-%d %H:%M:%S')
Out[90]: datetime.datetime(2023, 8, 29, 22, 8, 32)

4, datetime运算

4-1, datetime之间运算

datetime之间支持之间相减,不支持相加


# datetime之间相减
In [199]: datetime.now() - datetime(2023,1,1)
Out[199]: datetime.timedelta(days=240, seconds=62056, microseconds=554334)

4-2, 通过timedelta加减

使用timedelta需要先导入:from datetime import timedelta

In [200]: from datetime import timedelta

# 加3天
In [201]: datetime.now() + timedelta(days=3)
Out[201]: datetime.datetime(2023, 9, 1, 17, 16, 36, 897620)

# 减3天
In [203]: datetime.now() - timedelta(days=3)
Out[203]: datetime.datetime(2023, 8, 26, 17, 16, 46, 674351)

# 加3小时
In [204]: datetime.now() + timedelta(hours=3)
Out[204]: datetime.datetime(2023, 8, 29, 20, 16, 53, 746510)

# 减3小时
In [205]: datetime.now() - timedelta(hours=3)
Out[205]: datetime.datetime(2023, 8, 29, 14, 16, 57, 10485)

# 加3分钟
In [206]: datetime.now() + timedelta(minutes=3)
Out[206]: datetime.datetime(2023, 8, 29, 17, 20, 11, 881435)

# 减3分钟
In [207]: datetime.now() - timedelta(minutes=3)
Out[207]: datetime.datetime(2023, 8, 29, 17, 14, 15, 66273)

5, 时区转换

5-1, 本地时间转换为UTC时间

In [247]: from datetime import datetime, timedelta, timezone

# 创建UTC-8时区
In [248]: tz_utc_8 = timezone(timedelta(hours=8))

In [249]: now = datetime.now()

In [250]: now
Out[250]: datetime.datetime(2023, 8, 29, 21, 10, 10, 583383)

# 本地时间转换为UTC时间, tzinfo为时区属性
In [251]: dt = now.replace(tzinfo=tz_utc_8)

In [252]: dt
Out[252]: datetime.datetime(2023, 8, 29, 21, 10, 10, 583383, tzinfo=datetime.timezone(datetime.timedelta(seconds=28800)))

5-2, 时区间转换

# 通过datetime.utcnow()获取utc时间,并设置为UTC0
In [38]: utc_dt = datetime.utcnow().replace(tzinfo=timezone.utc)

In [39]: utc_dt
Out[39]: datetime.datetime(2023, 8, 29, 13, 40, 24, 247748, tzinfo=datetime.timezone.utc)


# UTC0时区转换到UTC8时区
In [41]: bj_dt = utc_dt.astimezone(timezone(timedelta(hours=8)))

In [42]: bj_dt
Out[42]: datetime.datetime(2023, 8, 29, 21, 40, 24, 247748, tzinfo=datetime.timezone(datetime.timedelta(seconds=28800)))

# UTC8时区转换到UTC9时区
In [43]: dj_dt = utc_dt.astimezone(timezone(timedelta(hours=9)))

In [44]: dj_dt
Out[44]: datetime.datetime(2023, 8, 29, 22, 40, 24, 247748, tzinfo=datetime.timezone(datetime.timedelta(seconds=32400)

# 时区间转换
In [45]: bj_dt.astimezone(timezone(timedelta(hours=9)))
Out[45]: datetime.datetime(2023, 8, 29, 22, 40, 24, 247748, tzinfo=datetime.timezone(datetime.timedelta(seconds=32400)

6, 带时区datetime转换为timestamp

这样的好处在于timestamp和时区没有关系,达到正确存储的作用文章来源地址https://www.toymoban.com/news/detail-683591.html

import re
from datetime import datetime, timezone, timedelta


def datetime_to_timestamp(str_time, time_zone):
    dt = datetime.strptime(str_time, '%Y-%m-%d %H:%M:%S')
    # 将dt的时区替换为指定的时区
    dt_utc = dt.replace(tzinfo=timezone(timedelta(hours=int(re.search(r'[+-]\d+', time_zone).group()))))
    result = dt_utc.timestamp()

    return result


if __name__ == "__main__":
    t1 = datetime_to_timestamp('2015-6-1 08:10:30', 'UTC+7:00')
    assert t1 == 1433121030.0, t1

    t2 = datetime_to_timestamp('2015-5-31 16:10:30', 'UTC-09:00')
    assert t2 == 1433121030.0, t2

到了这里,关于Python --datetime模块的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 日期和时间处理教程:datetime 模块的使用

    Python 中的日期不是独立的数据类型,但我们可以导入一个名为 datetime 的模块来使用日期作为日期对象。 示例:导入 datetime 模块并显示当前日期: 当我们执行上面示例中的代码时,结果将是: 日期包含年、月、日、小时、分钟、秒和微秒。datetime 模块有许多方法可以返回有

    2024年02月08日
    浏览(45)
  • [Python] datetime 库的使用

    🎶博客主页: 程序喵正在路上 的博客主页 🦋欢迎关注🖱点赞👍收藏🌟留言🐾 🦄本文由 程序喵正在路上 原创,CSDN首发! 💖系列专栏:Python学习 🌠首发时间:2022年5月2日 ✅如果觉得博主的文章还不错的话,希望小伙伴们三连支持一下哦 以不同格式显示日期和时间是

    2023年04月10日
    浏览(37)
  • 【datetime】python的时间获取利器

    Python写一些业务场景,肯定避免不了要使用时间,那么怎么做好“时间管理”呢。以下是我经常用的几个用法,后续遇到新的也会一并补充进来,也当作为自己的一个笔记吧。 1、获取当前时间或生成指定时间  2.strftime格式化时间 如需要获取指定时间格式,还有特定格式的年

    2023年04月09日
    浏览(77)
  • python的datetime库使用详解

            本章介绍python最具代表性的的时间日期库——datetime。同样道理,大家可以更改电脑日期 时间去试验更多的函数,亲自实践会有不错的效果。 目录 1.  datetime.date 1.1  datetime.date(year,month,day) 1.1.1  datetime.date格式重要属性 1.2  datetime.date.fromtimestamp(timestamp) 1.3  date

    2024年02月08日
    浏览(39)
  • Python中的Time和DateTime

    Python在处理与时间相关的操作时有两个重要模块:time和datetime。在本文中,我们介绍这两个模块并为每个场景提供带有代码和输出的说明性示例。 模块主要用于处理时间相关的操作,例如获取当前时间、时间的计算和格式化等。它提供了一些函数和常量,包括: time() :返回

    2024年02月07日
    浏览(77)
  • python报‘AttributeError: type object ‘datetime.datetime‘ has no attribute ‘datetime‘‘错误的原因及解决方案

    在运行以下代码时出现报错AttributeError: type object ‘datetime.datetime’ has no attribute ‘datetime’ 原因:在导入模块使用from datetime import datetime,由于包名和类名一样,导致系统识别出现混乱,无法知道哪个是具体包和类 解决方案:直接使用import datetime进行导包即可

    2024年02月13日
    浏览(45)
  • Python学习之DateTime、TimeDelta、Strftime(Format)及其示例

    在Python中,date,time和datetime类提供了许多函数来处理日期、时间和时间间隔(time interval)。 Date和DateTime是Python中的对象,因此在操作它们时,实际上是在操作对象,而不是字符串或时间戳。每当您操纵日期或时间时,都需要导入DateTime函数。 Python中的DateTime类主要分为5类。

    2024年02月04日
    浏览(47)
  • 【Python】对key或values是datetime类型或时间字符串的字典dict排序

    当字典的key是时间字符串类型,如下 time_dict = {‘2021-05-18’: 119, ‘2021-06-05’: 119, ‘2020-12-10’: 116, ‘2021-04-19’: 110, ‘2020-12-04’: 108, ‘2021-04-13’: 106, ‘2020-12-08’: 106, ‘2020-09-12’: 103, ‘2021-05-14’: 101, ‘2021-05-08’: 100, ‘2021-01-09’: 99, ‘2020-12-09’: 99, ‘2021-06-25’: 99, ‘

    2023年04月08日
    浏览(38)
  • 【100天精通python】Day14:python模块_标准模块,自定义模块

    目录 1 python 模块 2 标准模块 2.1 常见的标准模块 2.2 标准模块的导入 3 自定义模块

    2024年02月14日
    浏览(46)
  • 「Python系列」Python模块

    在Python中,模块(Module)是一个包含Python代码的文件,它可以包含函数、类和变量等。模块的主要作用是组织代码,使代码更易于理解和维护。模块可以包含可重用的代码,并且可以被其他模块或程序导入(import)使用。 要创建一个模块,你需要创建一个新的Python文件,并在

    2024年02月22日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包