python中的时间处理函数

一、datetime模块

1、日期和时间

datetime模块提供了datetime、date和time等类来表示和操作日期和时间。下面是一个创建datetime对象的示例:

from datetime import datetime

current_datetime = datetime.now()
print("Current DateTime:", current_datetime)

2、日期和时间格式

datetime的strftime()方法可以将日期和时间格式化为字符串:

from datetime import datetime

current_datetime = datetime.now()
formatted_datetime = current_datetime.strftime("%Y-%m-%d %H:%M:%S")
print("Formatted DateTime:", formatted_datetime)

3、日期和时间运算操作

datetime模块提供了对日期和时间执行算术运算的方法。下面是计算两个datetime对象之间差异的示例

from datetime import datetime, timedelta

# Create two datetime objects
start_datetime = datetime(2023, 5, 30, 10, 0, 0)
end_datetime = datetime(2023, 5, 31, 15, 30, 0)

# Calculate the difference between two datetime objects
time_difference = end_datetime - start_datetime

print("Time Difference:", time_difference)

4、时区转换

使用pytz库在不同时区之间转换datetime对象。这里有一个例子:

from datetime import datetime
import pytz

# Create a datetime object with a specific timezone
dt = datetime(2023, 5, 31, 10, 0, 0, tzinfo=pytz.timezone('America/New_York'))

# Convert the datetime object to a different timezone
dt_utc = dt.astimezone(pytz.utc)

print("Datetime in UTC:", dt_utc)

5、strftime() strptime() timedelta

5.1函数介绍:

  • strptime()是将传进来的字符串时间(第一个参数)按照指定格式(第二个参数)转换成datetime类型;字符串–>datetime
  • strftime()将传进来的datetime时间(第一个参数)按照指定格式(第二个参数)转换成字符串类型;datetime–>字符串

5.2datetime.timedelta对象

timedalte 是datetime中的一个对象,该对象表示两个时间的差值

构造函数:

datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

其中参数都是可选,默认值为0

  • timedelta.total_seconds()方法:返回该时间差 以为单位的值

5.3用法

(1)把字符串转换成datetime对象

from datetime import datetime  #引入datetime模块
time= datetime.strptime('2023-9-8 14:57:19','%Y-%m-%d %H:%M:%S')   #把字符串转换成时间
print(type(time))
#

(2)把datetime对象转化为字符串

#把日期转换成字符串
import datetime  #引入datetime模块
str = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  #获取当前时间并转化成字符串
print(str)   #输出字符串信息
# 2023-09-08 14:59:52

(3)两个datetime对象的时间差值 – datetime.timedelta 对象

import datetime  #引入datetime模块
import time

if __name__ == '__main__':
    star_time = datetime.datetime.now()
    time.sleep(1)
    end_time = datetime.datetime.now()
    diff = end_time - star_time   # diff为datetime.timedelta对象
    days = diff.days
    print('days : %s' % days)
    seconds = diff.seconds
    print('seconds : %s' % seconds)
    microseconds = diff.microseconds
    print('microseconds : %s' % microseconds)

#days : 0
#seconds : 1
#microseconds : 3105

(4)计算当前时间向后10小时的时间

import datetime
d1 = datetime.datetime.now()
print(d1.strftime('%Y-%m-%d %H:%M:%S'))
d2 = d1 + datetime.timedelta(hours=10)
print(d2.strftime('%Y-%m-%d %H:%M:%S'))

#2021-07-10 16:57:18
#2021-07-11 02:57:18

(5)datetime将datetime对象转换成时间字符串和时间戳

from datetime import datetime

# datetime对象转换成时间字符串
datetime_str = datetime.strftime(datetime.now(), '%Y-%m-%d %H:%M:%S')
print(datetime_str)
 
# datetime对象转换成时间戳
datetime_stamp = datetime.timestamp(datetime.now())
print(datetime_stamp)

#2023-09-08 15:04:46
#1694156686.777958

(6)datetime将时间戳转换成时间字符串

from datetime import datetime
datetime_stamp2 = 1694156686.777958
datetime_str2 = datetime.strftime(datetime.fromtimestamp(datetime_stamp2), '%Y-%m-%d %H:%M:%S')
print(datetime_str2)
#2023-09-08 15:04:46

import datetime
# from datetime import datetime
datetime_stamp2 = 1694156686.777958
datetime_str2 = datetime.datetime.strftime(datetime.datetime.fromtimestamp(datetime_stamp2), '%Y-%m-%d %H:%M:%S')
print(datetime_str2)
#2023-09-08 15:04:46

二、time模块

time模块主要用于处理时间相关的操作,例如获取当前时间、时间的计算和格式化等。它提供了一些函数和常量,包括:

  • time():返回当前的时间戳(自1970年1月1日午夜以来的秒数)。

  • ctime():将一个时间戳转换为可读性更好的字符串表示。

  • gmtime():将一个时间戳转换为UTC时间的struct_time对象。

  • strftime():将时间格式化为指定的字符串格式。

1、测量执行时间

时间模块通常用于度量代码段的执行时间。这在优化代码或比较不同算法的性能时特别有用。

import time

start_time = time.time()
time.sleep(1)
# Code snippet to measure execution time
end_time = time.time()
execution_time = end_time - start_time
print("Execution Time:", execution_time, "seconds")
#Execution Time: 1.0129914283752441 seconds

2、暂停执行

我们可能需要将程序的执行暂停一段特定的时间。time模块为此提供了sleep()函数。这里有一个例子:

import time

print("Hello")
time.sleep(2)
print("World!")
#Hello
#World!

3、获取当前时间

以各种格式获得当前时间。time()函数的作用是:返回自Unix纪元(1970年1月1日)以来的秒数。

import time

current_time = time.time()
print("Current Time (seconds since epoch):", current_time)
#Current Time (seconds since epoch): 1694158550.9443023

可以看到,time模块主要用于表示时间戳(自Unix纪元以来的秒数)和一些与时间相关的基本操作,如睡眠、计时等。它提供了获取当前时间戳的函数time()以及其他一些函数如gmtime()、localtime()和strftime()等。

你可能感兴趣的:(python,开发语言)