关于python中time和datetime的区别与用法
作者:Python 发布时间:2022-07-15 00:54:17
标签:python,datetime,time,区别
一. 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


猜你喜欢
- 公布到网页上的Email经常会被一些工具自动提取,一些非法用户就会利用所提取的Email大肆发送垃圾邮件。这些工具大多都是查找链接中“mai
- 自从接触了python,再到机器学习和深度学习,要学习的东西向越拉越多了!!!因为课题的需要接触了tensorflow,我直接就是一个好家伙
- 在学习python的时候,三大“名器”对没有其他语言编程经验的人来说,应该算是一个小难点,本次博客就博主自己对装饰器、迭代器和生成器理解进行
- 很多新手刚开始学习python的时候经常会看到python 中__name__ = \'__main__\' 这样的代码,可
- 开发一个相机应用,需要申请三个权限:相机、读文件、写文件。1、在AndroidManifest.xml中添加<uses-permiss
- stdClass类是PHP的一个内部保留类,初始时没有成员变量也没成员方法,所有的魔术方法都被设置为NULL,可以使用其传递变量参数,但是没
- 下面是asp代码实现列出sql数据库中存储过程的功能,可自行添加其它功能:< HTML >< 
- 当我们在安装scrapy的过程中出现了Twisted错误,当我们有继续安装Twisted的时候,又继续报错,通过一系列的查询和了解,终于发现
- MySql5.0以后均支持存储过程,最近有空,研究了一下这个格式:CREATE PROCEDURE 过程名 ([过程参数[,...]])[特
- Go 命令Go语言自带有一套完整的命令操作工具,你可以通过在命令行中执行go来查看它们:图1.3 Go命令显示详细的信息这些命令对于我们平时
- Pandas类似R语言中的数据框(DataFrame),Pandas基于Numpy,但是对于数据框结构的处理比Numpy要来的容易。1. P
- 成品效果 <body> <div id="game" style="p
- #!/bin/env python # -*- coding: utf-8 -*- #filename: peartes
- 一、简单介绍正则表达式是一种小型的、高度专业化的编程语言,并不是python * 有的,是许多编程语言中基础而又重要的一部分。在python中
- 近日闲来无事,总有一种无形的力量萦绕在朕身边,让朕精神涣散,昏昏欲睡。可是,像朕这么有职业操守的社畜怎么能在上班期间睡瞌睡呢,我不禁陷入了沉
- 一,通用的ASCII码对照表 图解ASCII码对照表图,以字符A为例Dec表示十进制,如65Hx表示十六进制,如41Oct表示八进制,如10
- 本文实例讲述了Python3.6简单反射操作。分享给大家供大家参考,具体如下:# -*- coding:utf-8 -*-#!python3
- 本文实例为大家分享了tensorflow神经网络实现mnist分类的具体代码,供大家参考,具体内容如下只有两层的神经网络,直接上代码#引入包
- 当我们修改一份代码的时候,也许会碰到修改后的代码还不如修改之前的代码能够满足自己的需求,那么这个时候我们就需要对代码进行回滚,下面我们来看一
- W3C(万维网联盟)日前发布了HTML 5公共草案,这是10年来对HTML的一次主要升级。据国外媒体报道,W3C HTML5草案于本周二发布