当前位置: 首页 > news >正文

0基础学python-13:古希腊掌管时间的模块——datetime和time

目录

前言

datetime模块 

一、datetime 类

1.创建 datetime 对象

2.获取日期时间的各个部分

3.格式化日期时间为字符串

4.解析字符串为 datetime 对象

二、timedelta 类

1.创建 timedelta 对象

datetime注意事项

  time模块

1.获取当前时间戳

2.获取当前时间的结构化表示

3.格式化时间

4.睡眠

time注意事项


前言

        在 Python 中,datetime 是处理日期和时间的核心模块,位于标准库中。它提供了用于创建、操作和格式化日期时间的类和函数。Python 的 time 模块是处理时间的另一个重要工具,与 datetime 模块不同,它主要用于处理时间戳(Unix 时间戳)、计时器功能和简单的时间操作。

 

datetime模块 

  • datetime 模块提供了用于操作日期和时间的类和函数,主要用于处理日期时间对象、日期算术运算、日期格式化等。
  • 主要的类包括 datetime 和 datetime。例如,datetime.datetime 类用于表示具体的日期和时间,包括年、月、日、时、分、秒和微秒。
  • datetime 模块中的函数和类能够处理较复杂的日期和时间操作,例如计算日期差异、时区转换等。

 

一、datetime 类

   datetime 类用于表示特定的日期和时间,包括年、月、日、时、分、秒等信息。它位于 datetime 模块中。

 

1.创建 datetime 对象

from datetime import datetime # 从datetime模块中导入datetime类# 创建一个当前日期时间的对象
now = datetime.now()
print(now)  # 创建一个指定日期时间的对象
specific_date = datetime(2023, 12, 31, 23, 59, 59)
print(specific_date)  

 输出:

2024-07-16 22:59:50.631692
2023-12-31 23:59:59

 

2.获取日期时间的各个部分

from datetime import datetime# 获取年、月、日、时、分、秒等部分
now = datetime.now()
year = now.year                # 获取年份
month = now.month              # 获取月份
day = now.day                  # 获取天数
hour = now.hour                # 获取小时
minute = now.minute            # 获取分钟
second = now.second            # 获取秒数
microsecond = now.microsecond  # 获取毫秒print(year, month, day, hour, minute, second, microsecond)

输出:

2024 7 16 23 1 40 665821

 

3.格式化日期时间为字符串

from datetime import datetime# 格式化日期时间为字符串
now = datetime.now()
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_date,type(formatted_date))

输出:

2024-07-16 23:09:53 <class 'str'>

 

4.解析字符串为 datetime 对象

from datetime import datetime# 解析字符串为 datetime 对象
date_str = "2023-12-31 23:59:59"
parsed_date = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print(parsed_date,type(parsed_date)) 

输出:

2023-12-31 23:59:59 <class 'datetime.datetime'>

 

 

二、timedelta 类

    timedelta 类用于表示两个日期时间之间的差异,或者一个时间段。它也位于 datetime 模块中。

 

1.创建 timedelta 对象

from datetime import datetime, timedelta# 创建一个时间差异对象
delta = timedelta(days=5, hours=3, minutes=30)
print(delta)  # 5 days, 3:30:00# 使用时间差异来进行日期计算
start_date = datetime(2024, 7, 1)
end_date = start_date + delta
print(end_date)  # 2024-07-06 03:30:00

输出:

5 days, 3:30:00
2024-07-06 03:30:00

 

datetime注意事项

  • datetime 对象是不可变的,一旦创建就不能修改其值。
  • datetime 模块中的函数和类提供了强大的日期时间处理功能,能够处理日期时间的格式化、比较、计算等各种操作。

        使用 datetime 模块可以方便地在 Python 中进行日期和时间的操作,从简单的获取当前时间到复杂的日期计算和时区处理都有很好的支持。

 

 

  time模块

  • time 模块提供了与底层操作系统相关的时间功能,主要用于处理时间戳(Unix 时间戳)、计时器功能和简单的时间操作。
  • time 模块中的函数允许你获取当前时间、睡眠一段时间、测量时间间隔等简单操作。
  • time 模块更专注于底层的时间处理和计时,适合于需要高精度计时或者简单时间操作的场景。

 

1.获取当前时间戳

        时间戳是自 1970 年 1 月 1 日午夜(UTC)以来的秒数。在 Unix 系统中广泛使用。

import time# 获取当前时间戳(秒数)  即 当前时间到1970年1月1日午夜(UTC)的秒数间隔
timestamp = time.time()
print(timestamp)  

输出:

1721143169.5846913

 

2.获取当前时间的结构化表示

    time.localtime() 函数返回当前时间的结构化时间,即包含年、月、日等信息的元组。

import time# 获取当前本地时间的结构化表示
local_time = time.localtime()
print(local_time)

输出:

time.struct_time(tm_year=2024, tm_mon=7, tm_mday=16, tm_hour=23, tm_min=22, tm_sec=24, tm_wday=1, tm_yday=198, tm_isdst=0)

 

3.格式化时间

    time.strftime() 方法将结构化时间或时间戳格式化为指定格式的字符串。

import time# 将结构化时间格式化为字符串
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
print(formatted_time,type(formatted_time)) # 使用时间戳格式化为字符串
timestamp = time.time()
formatted_timestamp = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(timestamp))
print(formatted_timestamp,type(formatted_timestamp))

输出:

2024-07-16 23:24:48 <class 'str'>
2024-07-16 23:24:48 <class 'str'>

 

4.睡眠

    time.sleep() 函数用于让程序休眠指定的秒数。

import timeprint("Start")
time.sleep(5)  # 休眠 5 秒
print("End after 5 seconds")

输出:Start出现到End after 5 seconds出现,中间间隔了5s

Start
End after 5 seconds

此行代码建议自己运行一遍,更能观察到代码的实现。

 

time注意事项

  • time 模块提供了与底层操作系统相关的时间功能,适合对时间戳、基本时间操作和计时器的需求。
  • time 模块返回的时间是相对简单的结构化形式或时间戳,并不提供 datetime 模块中的日期时间对象和复杂的日期运算功能。
  • 在需要处理日期时间的复杂场景时,建议优先选择 datetime 模块;而在需要处理时间戳、执行简单的时间操作或进行性能测试时,使用 time 模块更为合适。

       通过 time 模块,你可以方便地在 Python 中处理时间戳、进行基本时间操作,并实现简单的计时功能。

http://www.lryc.cn/news/401439.html

相关文章:

  • 棒球特长生升学具有其独特的优势和劣势·棒球6号位
  • 搜维尔科技:Xsens DOT 可穿戴传感器介绍及示例应用演示
  • 数据分析案例-2024 年热门动漫数据集可视化分析
  • C#小结:未能找到类型或命名空间名“xxx”(是否缺少 using 指令或程序集引用?)
  • STM32智能无人机控制系统教程
  • 从 QWebEnginePage 打印文档
  • 初识Docker及管理Docker
  • 【学术会议征稿】2024年第三届信息学,网络与计算技术国际学术会议(ICINC2024)
  • 在golang中Sprintf和Printf 的区别
  • 策略模式原理与C++实现
  • 打包一个自己的Vivado IP核
  • 《昇思25天学习打卡营第05天|qingyun201003》
  • 【Leetcode】二十一、前缀树 + 词典中最长的单词
  • 秋招Java后端开发冲刺——Mybatis使用总结
  • 怎么压缩视频文件?简单的压缩视频方法分享
  • 【Oracle】Oracle语法之递归查询
  • 【教程】Vue2中使用svg矢量图
  • 简约唯美的404HTML源码
  • PDF 转图片并插入到 EXCEL 再转PDF
  • jmeter之变量随机参数化以及解决多线程不会随机变化
  • 24/7/12总结
  • sentinel网关限流配置及使用
  • # 如何解决 App Store 审核中的 4.3(a) 问题:Guideline 4.3(a) - Design - Spam
  • 最长上升子序列(LIS)
  • 自动驾驶车道线检测系列—3D-LaneNet: End-to-End 3D Multiple Lane Detection
  • 手工创建 postgres kamailio 数据库
  • 装饰设计模式
  • Linux 线程初步解析
  • 为ppt中的文字配色
  • python-区间内的真素数(赛氪OJ)