首页 > 其他分享 >模块学习之time、datetime模块

模块学习之time、datetime模块

时间:2024-05-09 15:34:04浏览次数:20  
标签:str 19 datetime 2024 tm 模块 time print

【一】表示时间的三种方式

  • 时间戳
  • 元祖(struct_time):年,月,日,时,分,秒,毫秒,微妙
  • 格式化的时间字符串:xx年-xx月-xx日 时:分:秒

【二】time模块

(1)导入模块

import time

(2)时间戳

  • 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数
import time

time_str = time.time()
print(time_str,type(time_str))
# 1713513369.7786846 <class 'float'>
# 将时间戳转换为UTC时间,与英国伦敦当地时间一致
print(time.gmtime(time_str))
# time.struct_time(tm_year=2024, tm_mon=4, tm_mday=19, tm_hour=7, tm_min=59, tm_sec=17, tm_wday=4, tm_yday=110, tm_isdst=0)
# 时间戳转换为时间元组(当地时间),与北京时间一致
print(time.localtime(time_str))
# time.struct_time(tm_year=2024, tm_mon=4, tm_mday=19, tm_hour=15, tm_min=59, tm_sec=17, tm_wday=4, tm_yday=110, tm_isdst=0)

(3)时间字符串

import time

now_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print(now_time)  # 2024-04-19 16:08:53
now_time = time.strftime("%Y-%m-%d %H:%M:%S")
print(now_time)  # 2024-04-19 16:10:18
now_time = time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime())
print(now_time)  # 2024-04-19 08:11:14
now_time = time.strftime("%Y-%m-%d %X")
print(now_time)  # 2024-04-19 16:12:04
  • Python中时间日期格式化符号
符号 含义
%y 两位数的年份表示 (00-99)
%Y 四位数的年份表示 (000-9999)
%m 月份 (01-12)
%d 月内中的一天 (0-31)
%H 24小时制小时数 (0-23)
%I 12小时制小时数 (01-12)
%M 分钟数 (00=59)
%S (00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天 (001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数 (00-53)星期天为星期的开始
%w 星期 (0-6),星期天为星期的开始
%W 一年中的星期数 (00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身

(4)时间元祖

import time

date_time = time.localtime()
print(date_time)
# 可以通过直接 `.` 取每个值
print(date_time.tm_year)  # 2024
print(date_time.tm_mon)   # 4 当月
print(date_time.tm_mday)  # 19 当天
print(date_time.tm_wday)  # 4 星期几
print(date_time.tm_yday)  # 100 当前天数 在一年中的第x天
# 可以通过索引取每个单独的值
print(date_time[0])  # 2024
  • struct_time 元组共有9个元素共九个元素:
    • (年,月,日,时,分,秒,一年中第几周,一年中第几天等)
索引(Index) 属性(Attribute) 值(Values)
0 (年) 比如2023
1 tm_mon(月) 1 - 12
2 tm_mday(日) 1 - 31
3 tm_hour(时) 0 - 23
4 tm_min(分) 0 - 59
5 tm_sec(秒) 0 - 60
6 tm_wday(weekday) 0 - 6(0表示周一)
7 tm_yday(一年中的第几天) 1 - 366
8 tm_isdst(是否是夏令时) 默认为0

(5)结构化时间

[1]time.mktime(时间戳-->元组时间戳)

import time

time_str = time.time()
print(time_str)  # 1713517821.8571513
time_str = time.localtime(time_str)
print(time_str)  # time.struct_time(tm_year=2024, tm_mon=4, tm_mday=19, tm_hour=17, tm_min=10, tm_sec=21, tm_wday=4, tm_yday=110, tm_isdst=0)
time_str = time.mktime(time_str)
print(time_str)  # 1713517821.0

[2]time.strftime(结构化时间-->时间字符串)

  • 结构化时间参数若不传,则显示当前时间
import time

time_str = time.strftime("%Y-%m-%d %X")
print(time_str)  # 2024-04-19 17:15:45

print(time.localtime(time.time()))
# time.struct_time(tm_year=2024, tm_mon=4, tm_mday=19, tm_hour=17, tm_min=15, tm_sec=45, tm_wday=4, tm_yday=110, tm_isdst=0)

# 格式化当前时间元组
time_local = time.strftime("%Y-%m-%d", time.localtime(time.time()))
print(time_local)  # 2024-04-19

[3]time.strptime(时间字符串-->时间元组)

import time

time_str = time.strptime("2024-4-19", "%Y-%m-%d")
print(time_str)
# time.struct_time(tm_year=2024, tm_mon=4, tm_mday=19, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=110, tm_isdst=-1)
time_local = time.strptime("4/19/2024", "%m/%d/%Y")
print(time_local)
# time.struct_time(tm_year=2024, tm_mon=4, tm_mday=19, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=110, tm_isdst=-1)
time_local = time.strptime("4:19:2024", "%m:%d:%Y")
print(time_local)
# time.struct_time(tm_year=2024, tm_mon=4, tm_mday=19, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=110, tm_isdst=-1)

[4]time.asctime(结构化时间--> %a %b %d %H:%M:%S %Y串)

  • time.asctime(结构化时间)
import time

time_str = time.asctime(time.localtime(time.time()))
print(time_str)
# Fri Apr 19 17:21:15 2024

# 如果不传参数,直接返回当前时间的格式化串
time_local = time.asctime()
print(time_local)
# Fri Apr 19 17:21:15 2024
  • time.ctime(时间戳) --> %a %b %d %H:%M:%S %Y串
import time

time_str = time.ctime(time.time())
print(time_str)
# Fri Apr 19 17:23:26 2024

# 如果不传参数,直接返回当前时间的格式化串
time_local = time.ctime()
print(time_local)
# Fri Apr 19 17:23:26 2024

(6)总结

time.time()      # 生成时间戳
time.sleep()     # 随机睡眠多长时间
time.strftime()  # 格式化输出当前时间
time.strptime()  # 将时间字符串格式转换为时间元组
time.localtime() # 拿到当前时间的时间元组格式

【三】datetime模块

(1)导入模块

import datetime

(2)自定义日期并格式化

import datetime

time_str = datetime.date(2025,4,19)
print(time_str)  # 2025-04-19

(3)获取本地时间

#获取年月日
import datetime

now_time = datetime.date.today()
print(now_time)  # 2024-04-19

#获取年月日时分秒
import datetime

now_time = datetime.datetime.today()
print(now_time)  # 2024-04-19 15:23:40.058898
print(now_time.year)  # 2024
print(now_time.month)  #4
print(now_time.day) #19
print(now_time.hour) #15
print(now_time.minute) #23
print(now_time.second) #40
#weekday星期是0-6,0表示周一
print(now_time.weekday()) #4
#weekday星期是1-7,1表示周一
print(now_time.isoweekday()) #5

(4)timedelta对象

[1]时间增减

import datetime

now_today = datetime.timedelta(days=-5)
print(now_today) # 5 days, 0:00:00

[2]推迟和提前日期

import datetime

today = datetime.date.today()
print(today)  #
back_days = datetime.timedelta(days=5)
print(back_days)  # 5 days, 0:00:00
print(f'日期推后到{back_days + today}')
# 日期推后到2024-04-24
forward_days = datetime.timedelta(days=6)
print(forward_days)  # 6 days, 0:00:00
print(f'日期提前到{today - forward_days}')
# 日期提前到2024-04-13

[3]日期对象与timedelta的关系

  • 日期对象 = 日期对象 +/- timedelta对象
  • timedelta对象 = 日期对象 +/- 日期对象
import datetime

birthday = datetime.date(2024, 4, 18)
today_date = datetime.date.today()
days = birthday - today_date
print(f'生日:{birthday}')
print(f'今天的日期:{today_date}')
print(f'距离生日还有{days}天')
# 生日:2024-04-18
# 今天的日期:2024-04-19
# 距离生日还有-1 day, 0:00:00天

标签:str,19,datetime,2024,tm,模块,time,print
From: https://www.cnblogs.com/ligo6/p/18182398

相关文章

  • 模块学习之os模块
    【一】导入模块importos【二】文件路径相关操作_file__指当前文件(1)获取当前文件路径(abspath)importosfile_path=os.path.abspath(__file__)print(file_path)#D:\Python\pythonProject\pythonProject1\demo7.py(2)获取当前文件所在文件夹路径(dirname)importos......
  • Python高级之模块与包
    【一】模块介绍【1】什么是模块在Python中,一个py文件就是一个模块,文件名为xxx.py模块名则是xxx,导入模块可以引用模块中已经写好的功能使用模块既保证了代码的重用性,又增强了程序的结构性和可维护性另外除了自定义模块外,我们还可以导入使用内置或第三方模块提供的现成功能......
  • BOSHIDA AC/DC电源模块在通信与网络设备中的应用研究
    BOSHIDAAC/DC电源模块在通信与网络设备中的应用研究随着通信与网络技术的不断发展,通信与网络设备的使用不断增加。电源作为通信与网络设备的重要组成部分之一,在其稳定工作中起到至关重要的作用。AC/DC电源模块作为一种常用的电源转换器,广泛应用于通信与网络设备中。 一,AC/DC......
  • Java-LocalDateTime时间和时间(时间加减)
    前言一开始使用Date类来表述时间属性一个问题是时间戳的问题,另一个问题是读取Excel数据格式的时候没有那么灵活 1.基本知识LocalDateTime是Java8引入的日期和时间API中的一个类,位于java.time包中。它提供了一种更灵活、更方便的方式来处理日期和时间,相比旧的Date类更为......
  • time
    encoCi:UtimportdatetimeimperttimeimportdatetimeimporttimeclassTimeUtils:@staticmethoddefget_nowt_imestamp():returnint(round(datetime.datetime.now().timestamp()1000))@staticmethoddefget_hour_after_now_timestamp():returnint(round((datetime......
  • debian12 timeshift无法正常运行,手动进行timeshift快照还原
    起因,/etc不小心被我删了注意,系统重要的话最好先用虚拟机练习一下一.挂载文件系统sudomount/dev/sdxn/mnt/dev/sdxn是你的块设备二.查看文件系统目录cd/mntls会出现@@hometimeshift-btrfs三.还原快照(1)先删除目标子卷sudorm-r@(2)再还原目标快照......
  • 【Azure Function】Azure Function中的Timer Trigger无法自动触发问题
    问题描述在AzureFunction中,部署了定时触发器函数(TimerTrigger),却无法按时触发。 问题解答登录Function的Kudu站点,查看logfiles中application/function/host目录下的日志文件,发现错误消息:Singletonlockrenewalfailedforblob'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx......
  • Windows下使用ONNXRuntime推理YOLOv8
    一、准备工作将训练好的pt文件转为onnx格式。yoloexportmodel=best.ptformat=onnxdevice=0opset=13dynamic#如果是动态Shape的话,命令行参数dydynamic一定要加上,不然就是static的模型二、下载与安装ONNXRuntime注意:下载安装onnxruntime-gpu时需要保证其与cuda的兼容......
  • Autoware定位模块解析
    定位概述定位有两个目的,一个是为了建图,一个是为了感知和决策规划建图时的定位和实际自动驾驶时的定位区别和相同点?区别:建图过程可以是离线的(回环检测),不要求定位实时性,而自动驾驶时的定位是在线的;建图时除了当前数据和已建地图不包含其他先验信息,而自动驾驶时的定位是包......
  • sql server时间戳timestamp
    原文链接:https://www.cnblogs.com/hanke123/p/4741561.html在SQLServer中联机丛书是这样说的:SQLServertimestamp数据类型与时间和日期无关。SQLServertimestamp是二进制数字,它表明数据库中数据修改发生的相对顺序。实现timestamp数据类型最初是为了支持SQLServer恢......