time模块与datetime模块

1、time模块

time 模块是 Python 标准库中的一个模块,提供与时间相关的各种功能。以下是一些常见的time 模块的功能:

  1.时间获取与表示:

  • time.time(): 返回当前时间的时间戳(自1970年1月1日以来的秒数)。
  • time.localtime(secs): 将一个时间戳转换为本地时间的struct_time 对象。如果不提供参数,则使用当前时间戳。
    import time
    
    current_time = time.time()
    print(f"Current timestamp: {current_time}")
    
    local_time = time.localtime(current_time)
    print(f"Local time: {local_time}")
    

    2.格式化时间:

  • time.strftime(format, t): 将struct_time 对象或时间戳转换为格式化的字符串。
    import time
    
    current_time = time.time()
    formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(current_time))
    print(f"Formatted time: {formatted_time}")
    

    format参数是格式化字符串,用于指定输出的时间字符串的格式,而 t参数是一个可选参数,表示输入的时间信息。

    在上面的例子中, "%Y-%m-%d %H:%M:%S"是格式化字符串,它包含了一系列占位符,每个占位符代表一个时间元素(年、月、日、时、分、秒)。这些占位符会被替换为相应的时间值,生成最终的格式化字符串。

    以下是一些常用的占位符:

  • %Y: 年份,如 2022
  • %m: 月份,01 到 12
  • %B: 表示月份的全名 January-December
  • %d: 月内中的一天,01 到 31
  • %A: 表示星期的全名 Monday-Sunday
  • %H: 小时  (24小时制)00 到 23
  • %l: 小时(12小时制)01 到 12
  • %M: 分钟,00 到 59
  • %S: 秒,00 到 61(包括闰秒)

3.获取时间戳对应字符串:

time.ctime(secs) 是time 模块中的一个函数,用于将时间戳(秒数,自1970年1月1日起)或当前时间转换为一个可读的字符串表示形式。这个字符串表示形式通常包含了星期、月份、日期、时间和年份的信息。

以下是time.ctime() 的基本用法:

import time

# 不提供参数时,使用当前时间戳
current_time_string = time.ctime()
print(f"Current time string: {current_time_string}")

这将返回一个包含当前本地时间信息的可读字符串。如果你提供一个时间戳作为参数,它将相应地转换为一个可读字符串:

import time

# 指定一个时间戳
specified_time = 1630533600  # 2021-09-02 12:00:00

# 将时间戳转换为可读字符串
specified_time_string = time.ctime(specified_time)
print(f"Specified time string: {specified_time_string}")

需要注意的是, time.ctime()返回的字符串格式通常是类似于 "Thu Sep 2 12:00:00 2021" 的形式,其中有一些空格,这取决于时间元素的长度。如果你需要更灵活的格式,可以使用 time.strftime()函数,提供自定义的格式化字符串。

4.时间延迟:

  • time.sleep(secs): 让程序暂停指定的秒数。
    import time
    
    print("Start")
    time.sleep(2)  # 暂停 2 秒
    print("End")
    

5.性能测量:

  • time.process_time(): 返回当前进程的累计 CPU 时间。
    import time
    
    start_time = time.process_time()
    
    # 执行一些操作
    
    end_time = time.process_time()
    elapsed_time = end_time - start_time
    print(f"Elapsed time: 0.0609 seconds")
    

    这只是time 模块提供的一些基本功能。有关更详细的信息,请查阅官方文档:time — Time access and conversions。

2、datetime模块

datetime 模块是 Python 标准库中的一个模块,用于处理日期和时间。它提供了 date,time ,datetime , timedelta等类,以及与这些类相关的方法和函数,使得在 Python 中处理日期和时间变得更加方便。

以下是 datetime模块中一些主要的类和函数:

  1. datetime 类:表示日期和时间的类,具有年、月、日、时、分、秒等属性。
    from datetime import datetime
    
    current_datetime = datetime.now()
    print(f"Current datetime: {current_datetime}")
    

  2. date 类:仅表示日期的类,具有年、月、日等属性。

    from datetime import date
    
    today = date.today()
    print(f"Today's date: {today}")
    

  3. time 类:仅表示时间的类,具有时、分、秒等属性。

    from datetime import time
    
    current_time = time(14, 30, 0)
    print(f"Current time: {current_time}")
    

  4. timedelta 类:表示时间间隔或持续时间的类,可以用来进行日期和时间的加减操作。

    from datetime import timedelta
    
    one_day = timedelta(days=1)
    yesterday = today - one_day
    print(f"Yesterday's date: {yesterday}")
    

  5. strftimestrptime 方法:                                                                                              strftime: 将 datetime对象格式化为字符串。                                                                  strptime: 将字符串解析为 datetime对象。

    formatted_date = current_datetime.strftime("%Y-%m-%d %H:%M:%S")
    parsed_datetime = datetime.strptime("2024-02-03 21:30:00", "%Y-%m-%d %H:%M:%S")
    
  6. 其他函数:

  • datetime.now(): 获取当前日期和时间。
  • date.fromisoformat(): 从 ISO 格式字符串创建日期对象。
  • datetime.combine(): 将日期和时间合并为 datetime对象。

如果导入模块的方式为:import datetime,则需要在引用时加上模块名称的前缀。

import datetime

current_datetime = datetime.datetime.now()
print(f"Current datetime: {current_datetime}")

today = datetime.date.today()
print(f"Today's date: {today}")

datetime模块提供了丰富的功能,使得处理日期和时间变得简单而灵活。可以根据需要使用这些类和方法进行日期和时间的操作。

3、time模块与datetime模块的区别

time模块和datetime 模块都是 Python 标准库中用于处理日期和时间的模块,但它们有一些关键的区别:

1.表示的内容:

  • datetime模块提供了datetimedatetime 三个类,用于分别表示日期和时间、仅日期、仅时间。这允许对日期和时间进行更细粒度的控制。
  • time模块主要关注处理和表示时间,提供了 struct_time类型以及相关的函数。

2.数据类型:

  • datetime模块的主要类是datetimedatetime ,它们是独立的类,分别用于表示日期和时间、仅日期、仅时间。
  • time模块中的主要类型是struct_time ,它是一个元组,包含了年、月、日、时、分、秒等时间信息。

3.精度:

  • datetime模块提供了微秒级别的精度,可以表示更加精确的时间。
  • time模块中的 struct_time类型只能表示到秒。

4.使用场景:

  • datetime模块适用于需要同时处理日期和时间的情况,例如在应用程序中需要记录时间戳或进行日期和时间的计算。
  • time模块适用于只关注时间的场景,例如需要获取当前时间、进行时间格式的转换等。

5.方法和函数:

  • datetime模块提供了大量方法和函数,用于日期和时间的计算、格式化等操作。例如, strftimestrptime 方法用于格式化和解析日期时间字符串。
  • time模块提供了一些用于获取当前时间、睡眠等基本时间操作的函数,以及 strptime函数用于解析时间字符串。

总体而言,datetime 模块更全面,适用于对日期和时间都有要求的场景,而 time模块更专注于时间的处理,适用于只关注时间的场景。选择使用哪个模块取决于你的具体需求。

你可能感兴趣的:(python学习笔记,python)