深圳建设交易中心网站首页,工程建设工资高吗,ppt做视频模板下载网站有哪些内容,嘉兴门户网站建设目录
❤ 预备知识
❤ UTC time Coordinated Universal Time
❤ epoch time
❤ timestamp#xff08;时间戳#xff09;
❤ stamptime时间戳
❤ struct_time时间元组
❤ format time 格式化时间
❤ time模块编辑
❤ 获取当前时间的方法
❤ 当传入默认参…目录
❤ 预备知识
❤ UTC time Coordinated Universal Time
❤ epoch time
❤ timestamp时间戳
❤ stamptime时间戳
❤ struct_time时间元组
❤ format time 格式化时间
❤ time模块编辑
❤ 获取当前时间的方法
❤ 当传入默认参数时指的是使用当前时间作为参数值
❤ localtime和gmtime
❤ asctime和ctime
❤ struct_time元组元素结构
❤ 常用函数
❤ 举例
❤ format time结构化表示
❤ datetime模块
❤ datetiem模块分类 ❤ ddatetime.datetime.now() 返回当前的datetime日期类型 ❤ datetime.date.fromtimestamp() 把一个时间戳转为datetime日期类型
❤ 时间运算datetime.timedelta
❤ 时间替换
❤ date类 在实际开发过程中我们经常会用到日期或者时间那么在Python中我们怎么获取时间以及如何将时间转换为我们需要的格式呢在之前的开发中也曾遇到time、datetime等模块下的不同函数这些函数名又很是相似几次下来头都昏了今天来彻底总结梳理一下Python中日期时间获取与格式化。
❤ 预备知识
❤ UTC time Coordinated Universal Time
世界协调时又称格林尼治天文时间、世界标准时间。与UTC time对应的是各个时区的local time也就是本地时间例如我们的北京时间
❤ epoch time
表示时间开始的起点它是一个特定的时间不同平台上这个时间点的值不太相同对于Unix而言epoch time为 1970-01-01 00:00:00 UTC。
❤ timestamp时间戳
也称为Unix时间 或 POSIX时间它是一种时间表示方式表示从格林尼治时间1970年1月1日0时0分0秒开始到现在所经过的毫秒数其值为float类型。所谓的时间戳timestamp就是当前时间与格林尼治时间1970年1月1日0时0分0秒之间过了多少秒。
相应的日期时间就有三种表示方法
❤ stamptime时间戳
时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。stamptime表现为一个float类型数据。
❤ struct_time时间元组
共有九个元素组,stamptime时间戳和格式化时间字符串之间的转化必须通过struct_time才行
❤ format time 格式化时间 已格式化的结构字符串使时间更具可读性。包括自定义格式和固定格式。那么下面要说的就是怎么获取这三个时间并进行这三个时间之间的转化
❤ time模块
time模块中几乎所有时间获取与格式转化的函数都在上图中了只要理清了这幅图的关系那么time模块就不再是问题。图中蓝色方块表示那三种时间格式箭头表示时间的转化
❤ 获取当前时间的方法
使用time.time(),要想获取当前时间只能通过这个方法而且获取的是时间戳格式的时间
❤ 当传入默认参数时指的是使用当前时间作为参数值
图中带黄色底纹的都是设有默认值的参数虽然默认值为None函数2、3不传入该参数时系统会自动获取当前时间的时间戳作为该参数值。而函数5则是系统会自动获取当前时间的时间元组作为该参数值不是不能直接获取当前时间的时间元组吗是的但系统会先获取当前时间的时间戳然后转化为时间元组。上图中只有向左的箭头所代表的函数才有默认值就是因为向右才能由时间戳转化得到需要的时间格式。
❤ localtime和gmtime localtime函数2和gmtime函数3都可以实现将时间戳转化为时间元组但是localtime转化的是本地时间gmtime转为的是世界标准时间
❤ asctime和ctime
asctime函数7和ctime函数8只能转为%a %b %d %H:%M:%S %Y格式的字符串时间。不传入参数时用的也是当前时间
❤ struct_time元组元素结构 下标/索引 属性名称 描述 0 tm_year 年份如 2018 1 tm_mon 月份取值范围为[1, 12] 2 tm_mday 一个月中的第几天取值范围为[1-31] 3 tm_hour 小时 取值范围为[0-23] 4 tm_min 分钟取值范围为[0, 59] 5 tm_sec 秒取值范围为[0, 61] 6 tm_wday 一个星期中的第几天取值范围为[0-6]0表示星期一 7 tm_yday 一年中的第几天取值范围为[1, 366] 8 tm_isdst 是否为夏令时可取值为0 , 1 或 -1默认值为-1
struct_time属性值的获取方式有两种 可以把它当做一种特殊的有序不可变序列通过 下标/索引 获取各个元素的值如t[0]也可以通过对象名 “t.属性名” 的方式来获取各个元素的值如t.tm_year。❤ 常用函数
time.localtime([secs])将一个时间戳转换为当前时区的struct_time。secs参数未提供则以当前时间为准。time.gmtime([secs])和localtime()方法类似gmtime()方法是将一个时间戳转换为UTC时区0时区的struct_time。time.time()返回当前时间的时间戳。time.mktime(t)将一个struct_time转化为时间戳。time.sleep(secs)线程推迟指定的时间运行。单位为秒。time.asctime([t])把一个表示时间的元组或者struct_time表示为这种形式Sun Oct 1 12:04:38 2023。如果没有参数将会将time.localtime()作为参数传入。time.ctime([secs])把一个时间戳按秒计算的浮点数转化为time.asctime()的形式。如果参数未给或者为None的时候将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。time.strftime(format[, t])把一个代表时间的元组或者struct_time如由time.localtime()和time.gmtime()返回转化为格式化的时间字符串。如果t未指定将传入time.localtime()。
❤ 举例
import time# time模块的方法
# time.localtime([secs])将一个时间戳转换为当前时区的struct_time。secs参数未提供则以当前时间为准。
print(time.localtime())
# time.struct_time(tm_year2023, tm_mon2, tm_mday23, tm_hour13, tm_min45, tm_sec37, tm_wday3, tm_yday54, tm_isdst0)# time.gmtime([secs])和localtime()方法类似gmtime()方法是将一个时间戳转换为UTC时区0时区的struct_time。
print(time.gmtime())
# time.struct_time(tm_year2023, tm_mon2, tm_mday23, tm_hour5, tm_min45, tm_sec37, tm_wday3, tm_yday54, tm_isdst0)# time.time()返回当前时间的时间戳。
print(time.time())
# 1677131137.187028# time.mktime(t)将一个struct_time转化为时间戳。
a time.localtime()
print(time.mktime(a))
# 1677131137.0# time.sleep(secs)线程推迟指定的时间运行。单位为秒。
time.sleep(0.1)
print(hello world)
# hello world# time.asctime([t])把一个表示时间的元组或者struct_time表示为这种形式
# Sun Oct 1 12:04:38 2017。如果没有参数将会将time.localtime()作为参数传入。
a time.localtime()
print(time.asctime(a))
# Thu Feb 23 13:45:37 2023# time.ctime([secs])把一个时间戳按秒计算的浮点数转化为time.asctime()的形式。
# 如果参数未给或者为None的时候将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。
print(time.ctime())
# Thu Feb 23 13:45:37 2023# time.strftime(format[, t])把一个代表时间的元组或者struct_time如由time.localtime()和time.gmtime()返回
# 转化为格式化的时间字符串。如果t未指定将传入time.localtime()。
print(time.strftime(%Y-%m-%d %X, time.localtime()))
# 2023-02-23 13:45:37# time.strptime(string[, format])把一个格式化时间字符串转化为struct_time。实际上它和strftime()是逆操作。
print(time.strftime(2023-02-23 13:45:37))
# 2023-02-23 13:45:37
❤ format time结构化表示 格式 含义 %a 本地locale简化星期名称 %A 本地完整星期名称 %b 本地简化月份名称 %B 本地完整月份名称 %c 本地相应的日期和时间表示 %d 一个月中的第几天01 - 31 %H 一天中的第几个小时24小时制00 - 23 %I 第几个小时12小时制01 - 12 %j 一年中的第几天001 - 366 %m 月份01 - 12 %M 分钟数00 - 59 %p 本地am或者pm的相应符 %S 秒01 - 61 %U 一年中的星期数。00 - 53星期天是一个星期的开始。第一个星期天之前的所有天数都放在第0周。 %w 一个星期中的第几天0 - 60是星期天 %W 和%U基本相同不同的是%W以星期一为一个星期的开始。 %x 本地相应日期 %X 本地相应时间 %y 去掉世纪的年份00 - 99 %Y 完整的年份 %Z 时区的名字如果不存在为空字符 %% ‘%’字符
❤ datetime模块
相对于time 模块datetime模块的接口则更直观更容易调用
❤ datetiem模块分类
datetime.date表示日期的类。常用的属性有year, month, day
datetime.time表示时间的类。常用的属性有hour, minute, second, microsecond
datetime.datetime表示日期时间。
datetime.timedelta表示时间间隔即两个时间点之间的长度。
datetime.tzinfo与时区有关的相关信息。这里不详细充分讨论该类感兴趣的童鞋可以参考python手册 ❤ ddatetime.datetime.now() 返回当前的datetime日期类型 d.timestamp(),d.today(), d.year,d.timetuple()等方法可以调 import datetime
d datetime.datetime.now()
print(d)
# 2023-02-23 13:56:38.310013
d1 d.time()
print(d1)
# 13:56:38.310013
d2 d.today()
print(d2)
# 2023-02-23 13:56:38.310014
d3 d.year
print(d3)
# 2023
d4 d.timestamp()
print(d4)
# 1677131798.310013
d5 d.timetuple()
print(d5)
# time.struct_time(tm_year2023, tm_mon2, tm_mday23, tm_hour13, tm_min56, tm_sec38, tm_wday3, tm_yday54, tm_isdst-1)❤ datetime.date.fromtimestamp() 把一个时间戳转为datetime日期类型
import datetime
import timed datetime.date.fromtimestamp(0)
print(d)
# 1970-01-01
d time.time()
d1 datetime.date.fromtimestamp(d)
print(d1)
# 2023-02-23
❤ 时间运算datetime.timedelta
# 时间运算
import datetimed datetime.datetime.now()
print(d)
# 2023-02-23 13:59:53.519736d1 datetime.datetime(2017, 10, 1, 12, 53, 11, 821218)
print(d1)
# 2017-10-01 12:53:11.821218d2 datetime.datetime.now() datetime.timedelta(4) # 当前时间 4天
print(d2)
# 2023-02-27 13:59:53.520734d3 datetime.datetime(2018, 3, 12, 14, 52, 35, 276589)
print(d3)
# 2018-03-12 14:52:35.276589d4 datetime.datetime.now() datetime.timedelta(hours4) # 当前时间4小时
print(d4)
# 2023-02-23 17:59:53.520734
❤ 时间替换
# 时间替换
import datetime
d datetime.datetime.now()
print(d)
# 2023-02-23 14:01:21.191902
d1 d.replace(year2999,month11,day30)
print(d1)
# 2999-11-30 14:01:21.191902
d2 datetime.date(2999, 11, 30)
print(d2)
# 2999-11-30
❤ date类
date类表示一个日期。日期由年、月、日组成地球人都知道~~。date类的构造函数如下
date.min: 返回 date(MINYEAR, 1, 1).
date.max: 返回 date(MAXYEAR, 12, 31).
date.year: 返回 年, MINYEAR和MAXYEAR之间
date.month: 返回 月, 1到12月之间
date.day: 返回 1到 n 之间. year的范围是[MINYEAR, MAXYEAR]即[1, 9999]month的范围是[1, 12]。月份是从1开始的不是从0开始的_day的最大值根据给定的year, month参数来决定。例如闰年2月份有29天date类定义了一些常用的类方法与类属性方便操作date.max、date.mindate对象所能表示的最大、最小日期date.resolutiondate对象表示日期的最小单位。这里是天。date.today()返回一个表示当前本地日期的date对象date.fromtimestamp(timestamp)根据给定的时间戮返回一个date对象补充:
date.replace(year, month, day):返回一个相同值的data对象, 除了这些参数给关键字指定新的值.
date.timetuple(): 返回一个time.struct_time对象.
date.toordinal(): 返回一个Gregoian Calendar对象.
date.weekday(): 返回day of the week. 星期一为0,星期日为6.
date.isoweekday(): 返回day of the week. 星期一为1,星期日为7.
date.isocalendar(): 返回一个三元组, (ISO year, ISO week number, ISO weekday).
date.isoformat(): 返回 一个YYYY-MM-DD的字符串格式.
date.ctime(): 返回一个字符串日期, d.ctime() 等同于 time.ctime(time.mktime(d.timetuple())).
date.strftime(format): 返回一个字符串日期, 格式自定义.