首页 > 其他分享 >时间模块datetime

时间模块datetime

时间:2023-07-23 15:47:14浏览次数:29  
标签:00 对象 datetime 日期 时间 模块 字符串

 1 '''
 2 datetime 模块是 Python 标准库中用于处理日期和时间的模块。
 3 
 4 1. 详解:
 5 datetime 模块提供了多个类来处理日期和时间,包括 date、time、datetime 和 timedelta 等。
 6     1. date 类表示一个具体的日期(年、月、日)。
 7     2. time 类表示一个具体的时间(时、分、秒、微秒)。
 8     3. datetime 类表示一个具体的日期和时间(年、月、日、时、分、秒、微秒)。
 9     4. timedelta 类表示时间间隔,可以用于计算两个日期或时间之间的差异。
10 datetime 模块还提供了一些函数和常量,如 datetime.now()、datetime.strptime() 和 datetime.strftime() 等,用于获取当前时间、将字符串转换为日期时间对象以及将日期时间对象格式化为字符串等操作。
11 
12 2. 最佳实践
13     1. 使用 datetime 类型存储和操作日期时间数据,而不是字符串。这样可以更方便地进行日期时间的计算和比较。
14     2. 在涉及时区的情况下,建议使用第三方库(如 pytz)来处理时区问题,而不是仅依赖 datetime 模块。
15     3. 使用 datetime.strftime() 函数将日期时间对象格式化为字符串时,应该使用合适的格式化字符串。可以参考 Python 官方文档中的 strftime 格式代码。
16     4. 当需要处理时间差异时,使用 timedelta 类来进行日期时间的加减操作。
17 
18 3. 在使用 datetime 模块时,需要注意以下一些常见的坑点:
19     1. 月份和星期的表示:在 datetime 模块中,月份和星期的表示是以 1 开始的,而不是以 0 开始的。即 1 表示一月或星期一,2 表示二月或星期二,依此类推。
20     2. 日期时间对象的不可变性:datetime 对象是不可变的,即不能直接修改其中的年、月、日、时、分、秒等属性。如果需要修改日期时间对象的某个部分,可以使用相应的方法(如 replace() 方法)返回一个新的日期时间对象。
21     3. 时间的计算和比较:在计算时间差或者比较两个时间大小时,应该使用 timedelta 类来处理,而不是直接减法或比较运算符。
22 
23 4. 语法:
24     1. datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0)
25         创建一个表示日期时间的对象。
26         参数 year、month、day 是必需的,表示年、月、日。
27         参数 hour、minute、second、microsecond 是可选的,默认为 0,表示时、分、秒、微秒。
28 
29     2. datetime.date(year, month, day)
30         创建一个表示日期的对象。
31         参数 year、month、day 是必需的,表示年、月、日。
32     
33     3. datetime.time(hour=0, minute=0, second=0, microsecond=0)
34         创建一个表示时间的对象。
35         参数 hour、minute、second、microsecond 是可选的,默认为 0,表示时、分、秒、微秒。
36 
37     4. datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
38         创建一个表示时间间隔的对象。
39         可以指定不同的参数来定义时间间隔,如天数(days)、秒数(seconds)、微秒数(microseconds)、毫秒数(milliseconds)、分钟数(minutes)、小时数(hours)和周数(weeks)。
40 
41     5. datetime.datetime.now(tz=None)
42         返回当前本地日期时间。
43         可选参数 tz 是一个时区对象,用于获取特定时区的当前日期时间。
44         
45     6. datetime.datetime.strptime(date_string, format)
46         将字符串解析为日期时间对象。
47         参数 date_string 是待解析的日期时间字符串,参数 format 是日期时间字符串的格式。
48 
49     7. datetime.datetime.strftime(format)
50         将日期时间对象格式化为字符串。
51         参数 format 是格式化字符串,用于指定输出的日期时间格式。
52 
53     8. datetime.datetime.fromtimestamp(timestamp, tz=None)
54         将 POSIX 时间戳转换为日期时间对象。
55         参数 timestamp 是一个表示时间的浮点数,表示自 1970 年 1 月 1 日以来经过的秒数。
56 '''
57 
58 import datetime
59 
60 # 获取当前日期时间(含毫秒)
61 now = datetime.datetime.now()
62 print("Current datetime:", now)  # Current datetime: 2023-07-23 11:30:11.814882
63 
64 # 创建一个特定的日期时间对象
65 dt = datetime.datetime(2022, 1, 1, 12, 0, 0)
66 print("Specific datetime:", dt)  # Specific datetime: 2022-01-01 12:00:00
67 
68 # 格式化日期时间对象为字符串
69 formatted = dt.strftime("%Y-%m-%d %H:%M:%S")
70 print("Formatted datetime:", formatted)  # Formatted datetime: 2022-01-01 12:00:00
71 
72 # 将字符串解析为日期时间对象
73 # parsed = datetime.datetime.strptime("2023-07-23 11:30:00", "%Y-%m-%d %H:%M:%S")
74 parsed = datetime.datetime.strptime("2023-07-24 11:30:00", "%Y-%m-%d %H:%M:%S")
75 print("Parsed datetime:", parsed)  # Parsed datetime: 2023-07-23 11:30:00
76 
77 # 计算时间差
78 diff = parsed - now
79 print("Time difference:", diff)  # Time difference: -1 day, 23:59:48.185118  | Time difference: 23:57:45.012680
80 
81 # 修改日期时间对象的某个部分,要全改
82 modified = dt.replace(year=2024, hour=13)
83 print("Modified datetime:", modified)  # Modified datetime: 2024-01-01 13:00:00

 

标签:00,对象,datetime,日期,时间,模块,字符串
From: https://www.cnblogs.com/allenxx/p/17575073.html

相关文章

  • 加速 Mac 时间机器备份
    加速Mac时间机器备份速度教程,TimeMachine备份太慢的解决方法@Pertim2020-09-11相信用过一段时间电脑的人,都知道经常备份macOS系统的重要性了。特别是最近很多人想体验全新设计的macOS11BigSur系统,但是因为升级后除了格盘重装/时间机器恢复外不能通过其它方式降......
  • ESP8266 获取新大陆温湿度光照模块值
    光照是ADC输出的,温湿度走的是I2C。光照直接采样用公式转换即可。光照接线图如下:参考代码(基于Arduino):voidsetup(){Serial.begin(9600);}floatVref=3.3;//参考电压floatR=100.0;//分压电阻阻值floatvalue=0;voidloop(){intsensorValue......
  • java实体时间戳用什么类型接
    实现Java实体时间戳的类型选择对于Java开发者来说,处理时间戳是非常常见的任务。在Java中,我们可以使用不同的数据类型来表示时间戳,但是选择合适的类型并了解其使用方法至关重要。本文将向刚入行的小白开发者介绍Java实体时间戳的类型选择,并提供相应的代码示例和解释。整体流程下......
  • 嵌入式通用按键模块
    前言最近沉迷于收集一些大佬所开源的一些通用模块,这样在以后开发的过程中就能极大的减轻重复劳动。这次所带来的是MultiButton,一个小巧简单易用的事件驱动型按键驱动模块。①MultiButton简介这个项目非常精简,只有两个文件,可无限量扩展按键,按键事件的回调异步处理方式可以简化......
  • 时间复杂度和空间复杂度
    通常关注时间复杂度,对于常数阶和循环次数不变的时空复杂度,就不过多介绍了。递归的时间复杂度:对于只调用一次自身且递归次数程常数阶减少的递归,比如:voidfun(intn){if(n==0){return;}n--;returnfun(n);}它的时间复杂度是O(n),很明显它需要......
  • 模块
    1.什么是模块说白了就是一个python文件即扩展名为py的文件。1'''2Python模块(Module)是一种封装了代码的文件即是⼀个Python⽂件,以.py结尾,包含了Python对象定义和Python语句即模块可以包含函数、类、变量等python代码。3模块能定义函数,类和变量,模块里也能包含可......
  • 常见的5种模块导入
    1'''2导入模块的5种方式:31.import模块名4使用import关键字导入整个模块,然后可以使用模块名加点操作符来访问模块中的函数、类或变量。例如:importmath。562.from模块名import功能名7使用from关键字从模块中导入指定的功能(如函数、类或......
  • 模块的定位顺序
    1'''21.查找模块的顺序:31.当前目录:Python会首先搜索执行脚本所在的当前目录,也就是运行程序的工作目录。42.内置模块:如果在当前目录没有找到对应的模块,Python会接着搜索内置模块,这些模块是Python自带的,无需额外安装。53.sys.path中的目录:如果在内......
  • mysql 2个时间差
    如何计算MySQL中两个时间的差值作为一名经验丰富的开发者,我将会指导你如何在MySQL中计算两个时间之间的差值。下面是整个流程的步骤表格:步骤说明1连接到MySQL数据库2准备数据表3插入数据4查询时间差以下是每个步骤具体需要做的事情,以及每一条代码和其......
  • 2023-07-22:一共有n个项目,每个项目都有两个信息, projects[i] = {a, b}, 表示i号项目做完
    2023-07-22:一共有n个项目,每个项目都有两个信息,projects[i]={a,b},表示i号项目做完要a天,但是当你投入b个资源,它就会缩短1天的时间,你一共有k个资源,你的目标是完成所有的项目,但是希望总天数尽可能缩短。在所有项目同时开工的情况下,返回尽可能少的天数。1<=n<=10^5,1<=k......