首页 » Web前端 » phpmongodate时光纰谬技巧_经由进程6个实例教你运用datetime数据库做日期和时间的治理和转换

phpmongodate时光纰谬技巧_经由进程6个实例教你运用datetime数据库做日期和时间的治理和转换

访客 2024-12-17 0

扫一扫用手机浏览

文章目录 [+]

它是要 UTC Time(天下统一韶光)还是要本地韶光?

日期的格式要怎么格式化?

phpmongodate时光纰谬技巧_经由进程6个实例教你运用datetime数据库做日期和时间的治理和转换

我如果得到的是一个韶光戳,我该怎么转成目标韶光?

phpmongodate时光纰谬技巧_经由进程6个实例教你运用datetime数据库做日期和时间的治理和转换
(图片来自网络侵删)

我如果想把数据库的韶光转成韶光戳我该怎么处理?

等等等等

上面说的这些,不繁芜,但是你不能不知道,如果连这类的根本在用到的时候都须要去检索,那么就不用谈效率了。

下面,咱们通过几个实例,一起来看一下利用 datetime 这个库做日期和韶光的管理和转换。

实例 1:获取当前韶光

import time

from datetime import datetime

now = datetime.now()

print(f'当前韶光: {now}')

print(f'当前韶光拆分: {now.year, now.month, now.day}')

strf_now = datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')

print(f'格式化当前韶光: {strf_now}')

strf_now_1 = datetime.strftime(datetime.now(), '%Y-%m-%d %H:%M:%S')

print(f'格式化当前韶光-1: {strf_now_1}')

<OUTPUT>

当前韶光: datetime.datetime(2020, 12, 13, 16, 5, 57, 448449)

当前韶光拆分: (2020, 12, 13)

格式化当前韶光: '2020-12-13 16:05:57.448602'

格式化当前韶光-1: '2020-12-13 16:05:57'

对上述代码进行阐明:

now 中的 datetime.now() 用来获取当前的韶光,返回的数据为 datetime 类型;.year .mongo .day 分别用来获取年、月、日;

strf_now 中 strftime 用来格式化 datetime 类型的数据;格式化之后,返回的是 str 类型的数据;

strf_now_1 中演示了利用 strftime 格式化的另一种方法,返回的结果和数据类型与 strf_now 一样,这里用伪代码写一下上面说的两种方法

{datetime 类型工具}.strftime( {格式符组} )

datetime.strftime( {datetime 类型工具}, {格式符组} )

strftime 的格式符已经在文末整理好了,可以保存下来,用到的时候方便查阅。

实例 2:获取当前的UTC韶光

from datetime import timedelta

utc_now = datetime.utcnow()

print(f'UTC 当前韶光: {utc_now}')

utc2local = utc_now + timedelta(hours=8)

print(f'当地当前韶光: {utc2local}')

<OUTPUT>

UTC 当前韶光: datetime.datetime(2021, 9, 8, 12, 13, 31, 472850)

当地当前韶光: datetime.datetime(2021, 9, 8, 20, 13, 31, 472850)

对上述代码进行阐明:

datetime.utcnow() 用来获取 UTC (环球统一)韶光,返回的数据类型为 datetime 类型;

utc2local 完成的是 UTC 韶光转当前韶光的过程(科普:UTC 韶光转当前实际上做的只是在原有韶光根本上加 8 小时);

个中的 timedelta 会在“实例 3”中讲解,它的浸染是可以在当前韶光的根本上增加或者减少一定的韶光。

实例 3:获取一个韶光之前或者之后一段韶光后的韶光,利用timedelta可以很方便地实现

from datetime import timedelta

delta_now = datetime.now() + timedelta(days=1)

print(f'delta_now: {delta_now}')

<OUTPUT>

delta_now: datetime.datetime(2021, 9, 8, 20, 54, 45, 479097)

对上述代码进行阐明:

首先须要把稳,与 timedelta 相加的,须为 datetime 类型;

timedelta(days=1) 返回 datetime 类型,相加后,也返回 datetime 类型;

delta_now 表示在现在的根本上,加上一天返回;

timedelta 还支持很多参数,如下,如果多个传入,请把稳顺序datetime.timedelta(days=0,seconds=0,microseconds=0,milliseconds=0,minutes=0,hours=0,weeks=0)

timedelta 的值支持负数,例如 days=-1,表示减掉一天。

实例 4:字符串韶光转韶光戳

import time

def time2stamp(t):

time_array = time.strptime(t, '%Y-%m-%d %H:%M:%S')

print(type(time_array), '->', time_array)

timestamp = time.mktime(time_array)

return timestamp

if __name__ == '__main__':

print('->', time2stamp('2020-12-10 23:34:30'))

<OUTPUT>

<class 'time.struct_time'> -> time.struct_time(tm_year=2020, tm_mon=12, tm_mday=10, tm_hour=23, tm_min=34, tm_sec=30, tm_wday=3, tm_yday=345, tm_isdst=-1)

-> 1607614470.0

对上述代码进行阐明:

time.strptime() 函数根据指定的格式把一个韶光字符串解析为韶光元组,供后续利用;

time.mktime() 吸收构造化之后的韶光工具作为参数(上面的 time.strptime() 的返回值),返回用秒数来表示韶光的浮点数;

实例 5:当前韶光转韶光戳

import time

form datetime import datetime

def get_now_stamp():

now_time = datetime.now()

return time.mktime(now_time.timetuple())

if __name__ == '__main__':

print('->', get_now_stamp())

<OUTPUT>

-> 1607848078.0

实例 5 不多说,实例 4 搞明白了,理解实例 5 自然不成问题。

实例 6:韶光戳转韶光

from datetime import datetime

def stamp2time(timestamp):

return datetime.fromtimestamp(timestamp)

if __name__ == '__main__':

print('->', stamp2time(1607614470))

<OUTPUT>

-> datetime.datetime(2020, 12, 10, 23, 34, 30)

对上述代码阐明:

datetime.fromtimestamp() 韶光戳(int 型)转换为 datetime 类型韶光;

以上的方法,建议大家根据自己的须要,封装成工具类,个中实例 4、5、6 是封装好的现成的方法,可以直策应用;这样在利用的时候可以很方便的调用;

当然工具类可以往里面补充很多常用函数,有了这个利器,你开拓的效率也会逐渐地快起来。

下面是 strftime 格式符,请笑纳。

文末福利——推举一个《Python自动化测试学习互换群》给大家:

请关注+私信回答:"头条" 就可以免费拿到软件测试学习资料,同时进入群学习互换~~

相关文章