关于python中time和datetime的区别与用法

作者:Python 时间:2022-07-15 00:54:17 

一. Python中表示时间的两种方式:

  • 时间戳:相对于1970.1.1 00:00:00以秒计算的偏移量,唯一的

  • 时间元组struct_time:共有9个元素> tm_year:年1-12> tm_mon:月1-12> tm_mday:日1-31> tm_hour:时0-23> tm_min:分0-59> tm_sec:秒0-59> tm_wday:星期0-6(0表示周日)> tm_day:一年中的第几天1-366> tm_isdst:是否是夏令,默认为-1

二. time

1. time.time() #当前时间戳, 没参数,唯一值
2. time.sleep(secs) #暂停几秒
3. time.gmtime(secs)  #无参得到当前格林尼治时间,有时间戳参数就转为格林尼治结构时间
4. time.localtime(secs)  #无参得到local结构化时间, 有时间戳参数就转为local结构化时间
          print(time.localtime())  # time.struct_time(tm_year=2022, tm_mon=10, tm_mday=20, tm_hour=11, tm_min=20, tm_sec=44, tm_wday=3, tm_yday=293, tm_isdst=0)
          print(time.localtime(13912345678))  # time.struct_time(tm_year=2410, tm_mon=11, tm_mday=12, tm_hour=20, tm_min=27, tm_sec=58, tm_wday=4, tm_yday=316, tm_isdst=0)
5. time.strftime(format, t) #将结构化时间转化为自定义的格式化时间
          print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))  #北京时间
          print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()+60*60)))  #东京时间
6. time.strptime(string, format) # 将自定义时间(字符串)转化为结构时间
          print(time.strptime("2023-1-11 1:2:3", "%Y-%m-%d %H:%M:%S")) # 将日常格式化时间转为结构化时间
          print(time.strptime("2023-1-11", "%Y-%m-%d")) # 将日常格式化时间转为结构化时间
7. time.ctime(secs)  # 将一个时间戳转变为一个结构化时间
          print(time.ctime(123))  # Thu Jan  1 08:02:03 1970
          print(time.ctime(time.time() + 60 * 60))  # Thu Oct 20 11:28:32 2023
8. time.mktime(t) # 将所给结构化时间转化为时间戳
          print(time.mktime(time.localtime(time.time())))  # 1666233100.0
          print(time.time())  # 1666233100.5075898  # 两行的效果是一样的
          # 求一个指定时间的时间戳
          print(time.mktime(time.strptime('2023-2-3', '%Y-%m-%d'))) # 1580659200.0

三. datetime

datetime比time高级了不少,可以理解为datetime基于time进行了封装,提供了更多实用的函数,主要包含一下几类:

  • timedelta:主要用于计算时间跨度

  • time:只关注时间

  • date:只关注日期

  • datetime:同时有时间和日期

在实际使用中,用得比较多的是datetime.datetime和datetime.timedelta,另外两个datetime.date和datetime.time实际使用和datetime.datetime并无太大差别。

1.datetime.datetime

datetime.datetime 实例化后主要会有以下属性及常用方法:

time_now = datatime.datetime.now()  #实例化

datetime.year
datetime.month
datetime.day
datetime.hour
datetime.minute
datetime.second
datetime.microsecond
datetime.tzinfo():时区
datetime.date():返回date对象
datetime.time():返回time对象
datetime.replace(name=value)
datetime.timetuple():返回time.struct_time 对象
datetime.strftime(format):按照format进行格式化输出
#除了实例本身具有的方法,类本身也提供了很多好用的方法:

datetime.strptime(date_string,format): 给定时间格式解析字符串
datetime.now([tz]):当前时间默认 localtime
datetime.today():当前时间

2.datetime.timedelta

date.timedelta(3) ,前进3天
date.timedelta(-3) ,后退3天
date.timedelta(hour = 3) ,前进3小时
date.timedelta(minutes = 3) ,前进3分钟

import time
import datetime

dt = datetime.datetime.now()

print(dt.timestamp())
print(dt.year)
print(dt.month)
print(dt.day)
print(dt.hour)
print(dt.minute)
print(dt.second)
print(dt.microsecond)
print(dt.tzinfo)
print(dt.time())
print(dt.date())
print(dt.strftime("%Y-%m-%d %H:%M:%S"))  # 2023-1-31 13:42:16
print(datetime.datetime.strptime('2023-1-20 1:1:1', "%Y-%m-%d %H:%M:%S"))

delta = datetime.timedelta(11)

print(dt + delta)
print((dt + delta).strftime("%Y-%m-%d %H:%M:%S"))
print((dt - delta).strftime("%Y-%m-%d %H:%M:%S"))

print('....')
print(datetime.datetime.now()) #返回 2023-1-20 13:40:29.151057
print(datetime.date.fromtimestamp(time.time()) )  # 时间戳直接转成日期格式 2023-1-20
print(datetime.datetime.now())
print(datetime.datetime.now() + datetime.timedelta(3)) #当前时间+3天
print(datetime.datetime.now() + datetime.timedelta(-3)) #当前时间-3天
print(datetime.datetime.now() + datetime.timedelta(hours=3)) #当前时间+3小时
print(datetime.datetime.now() + datetime.timedelta(minutes=30)) #当前时间+30分

print(datetime.date.fromtimestamp(time.time()))  # 2023-1-20

来源:https://blog.csdn.net/sinat_38682860/article/details/129383756

标签:python,datetime,time,区别
0
投稿

猜你喜欢

  • python写入已存在的excel数据实例

    2021-05-17 15:08:17
  • Flask交互基础(GET、 POST 、PUT、 DELETE)的使用

    2022-01-17 11:00:04
  • MSSQL数据加密解密代码

    2024-01-18 05:22:34
  • MYSQL大数据导入

    2024-01-18 18:09:36
  • 基于Python实现模拟三体运动的示例代码

    2022-03-29 21:40:37
  • Git配置别名简化操作命令方式详解

    2022-03-20 03:34:12
  • jquery获取复选框被选中的值

    2024-04-22 13:05:24
  • 基于Python实现对比Exce的工具

    2022-12-04 17:44:44
  • Numpy中的mask的使用

    2022-06-10 19:33:11
  • python实现从字典中删除元素的方法

    2023-11-10 17:26:33
  • python3.x zip用法小结

    2023-08-13 05:25:05
  • Python中免验证跳转到内容页的实例代码

    2021-03-27 11:19:55
  • PHP chr()函数讲解

    2023-06-05 04:03:58
  • python 获取list 长度

    2021-11-12 12:49:57
  • Python爬虫之爬取淘女郎照片示例详解

    2021-01-16 12:50:48
  • javascript+HTML5 canvas绘制时钟功能示例

    2024-05-05 09:14:01
  • 浅谈vue-lazyload实现的详细过程

    2024-04-29 13:09:17
  • UEditor 编辑器跨域上传解决方法

    2022-09-07 11:52:41
  • Python 实现Serial 与STM32J进行串口通讯

    2021-03-05 16:01:33
  • FrontPage XP中的设计技巧

    2008-07-17 10:49:00
  • asp之家 网络编程 m.aspxhome.com