python 关于时间戳和datetime的常见使用语法

打印当前时间戳

import time
import datetime
 
t = time.time()
 
print (t)                       #原始时间数据
print (int(t))                  #秒级时间戳
print (int(round(t * 1000)))    #毫秒级时间戳
print (int(round(t * 1000000))) #微秒级时间戳

将当前时间转换成字符串

import datetime
now_str = datetime.strftime(datetime.now(), "%Y%m%d%H%M%S%f")   #%f表示精确到微秒

python 时间戳转为字符串

方法一

import datetime
import time

stamp = int(time.time())
print datetime.datetime.fromtimestamp(stamp)
2017-07-29 16:08:32

方法二

>>> time.strftime("%Y-%m-%d %H:%M", time.localtime(stamp))
'2017-07-29 16:08'
>>>

参考:python 时间戳转为字符串

timedalte()

timedalte 是datetime中的一个对象,该对象表示两个时间的差值
构造函数:datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
其中参数都是可选,默认值为0,如果只有一个参数,则表示天数

获取当前时间整点值

now_datetime = datetime.datetime.now()  # 当前时间,格式为datetime类型
# 把当前时间去除分、秒和毫秒后即是小时级别的整点值了
now_datetime_hour = now_datetime + datetime.timedelta(minutes=-now_datetime.minute, seconds=-now_datetime.second, microseconds=-now_datetime.microsecond)

打印结果:

now_datetime ======>  2021-12-19 16:15:47.156853
now_datetime_hour ======>  2021-12-19 16:00:00

将时间字符串转换为时间戳

time.strptime(t, format)函数可以将 时间字符串t按照 format格式解析后转成换一个下面这样的时间结构体struct_time,
time.struct_time(tm_year=2021, tm_mon=11, tm_mday=20, tm_hour=14, tm_min=54, tm_sec=36, tm_wday=5, tm_yday=324, tm_isdst=-1)

time.mktime(t) 接受一个上面的时间结构体参数,返回一个带有一位小数的毫秒级时间戳

example1:

t = time.strptime('2021-11-20 14:54:36', "%Y-%m-%d %H:%M:%S")
print(t) #time.struct_time(tm_year=2021, tm_mon=11, tm_mday=20, tm_hour=14, tm_min=54, tm_sec=36, tm_wday=5, tm_yday=324, tm_isdst=-1)
# 将时间结构体转换为时间戳
t = time.mktime(t)
print(t) #1637391276.0

example2:

import time
t = "Mon Mar 16 00:09:00 +0000 2015"
t = time.strptime(t, "%a %b %d %H:%M:%S %z %Y")
# 将时间结构体转换为时间戳
t = time.mktime(t)
# 1426435740.0
print(t) 

strftime()中各个字母的含义

    年    %Y  Year with century as a decimal number.
    月    %m  Month as a decimal number [01,12].
    日    %d  Day of the month as a decimal number [01,31].
    小时    %H  Hour (24-hour clock) as a decimal number [00,23].
    分钟    %M  Minute as a decimal number [00,59].
    秒    %S  Second as a decimal number [00,61].
    时区    %z  Time zone offset from UTC.
    %a  Locale's abbreviated weekday name.
    %A  Locale's full weekday name.
    %b  Locale's abbreviated month name.
    %B  Locale's full month name.
    %c  Locale's appropriate date and time representation.
    小时(12小时制)%I  Hour (12-hour clock) as a decimal number [01,12].
    %p  Locale's equivalent of either AM or PM.

参考:python 字符串时间转成时间戳

原文地址:https://www.cnblogs.com/hi3254014978/p/15707771.html