python模块datetime的使用

部署运行你感兴趣的模型镜像

不管何时何地,只要我们编程时遇到了跟时间有关的问题,都要想到 datetime 和 time 标准库模块,今天我们就用它内部的方法,详解python操作日期和时间的方法。
1.将字符串的时间转换为时间戳

复制代码代码如下:
方法:
a = "2013-10-10 23:40:00"
#将其转换为时间数组
import time
timeArray = time.strptime(a, "%Y-%m-%d %H:%M:%S")
#转换为时间戳:
timeStamp = int(time.mktime(timeArray))
timeStamp == 1381419600

2.格式更改
如a = "2013-10-10 23:40:00",想改为 a = "2013/10/10 23:40:00"
方法:先转换为时间数组,然后转换为其他格式
复制代码代码如下:
timeArray = time.strptime(a, "%Y-%m-%d %H:%M:%S")
otherStyleTime = time.strftime("%Y/%m/%d %H:%M:%S", timeArray)

3.时间戳转换为指定格式日期
方法一:利用localtime()转换为时间数组,然后格式化为需要的格式,如:
复制代码代码如下:
timeStamp = 1381419600
timeArray = time.localtime(timeStamp)
otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
otherStyletime == "2013-10-10 23:40:00"

方法二:
复制代码代码如下:
import datetime
timeStamp = 1381419600
dateArray = datetime.datetime.utcfromtimestamp(timeStamp)
otherStyleTime = dateArray.strftime("%Y-%m-%d %H:%M:%S")
otherStyletime == "2013-10-10 23:40:00"

4.获取当前时间并转换为指定日期格式
方法一:
复制代码代码如下:
import time
#获得当前时间时间戳
now = int(time.time())  ->这是时间戳
#转换为其他日期格式,如:"%Y-%m-%d %H:%M:%S"
timeArray = time.localtime(timeStamp)
otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)


方法二:
复制代码代码如下:
import datetime
#获得当前时间
now = datetime.datetime.now()  ->这是时间数组格式
#转换为指定的格式:
otherStyleTime = now.strftime("%Y-%m-%d %H:%M:%S")

5.获得三天前的时间的方法
复制代码代码如下:
import time
import datetime
#先获得时间数组格式的日期
threeDayAgo = (datetime.datetime.now() - datetime.timedelta(days = 3))
#转换为时间戳:
timeStamp = int(time.mktime(threeDayAgo.timetuple()))
#转换为其他字符串格式:
otherStyleTime = threeDayAgo.strftime("%Y-%m-%d %H:%M:%S")
注:timedelta()的参数有:days,hours,seconds,microseconds

6.给定时间戳,计算该时间的几天前时间
复制代码代码如下:
timeStamp = 1381419600
#先转换为datetime
import datetime
import time
dateArray = datetime.datetime.utcfromtimestamp(timeStamp)
threeDayAgo = dateArray - datetime.timedelta(days = 3)
#参考5,可以转换为其他的任意格式了

7、用Python计算昨天和明天的日期
复制代码代码如下:
>>> import datetime #导入日期时间模块
>>> today = datetime.date.today() #获得今天的日期
>>> print today #输出今天日期
2014-01-04 
>>> yesterday = today - datetime.timedelta(days=1) #用今天日期减掉时间差,参数为1天,获得昨天的日期
>>> print yesterday
2014-01-03 
>>> tomorrow = today + datetime.timedelta(days=1) #用今天日期加上时间差,参数为1天,获得明天的日期
>>> print tomorrow
2014-01-05 
>>>
>>> print "昨天:%s, 今天:%s, 明天:%s" % (yesterday, today, tomorrow) #字符串拼接在一起输出,这3天的日期

昨天:2014-01-03, 今天:2014-01-04, 明天:2014-01-05
8、python里使用time模块来获取当前的时间
复制代码代码如下:

#!/usr/bin/python
import time
print (time.strftime("%H:%M:%S"))
## 12 hour format ##
print (time.strftime("%I:%M:%S"))
#:输出
#18:11:30
#6:11:30

9、打印出当前的日期的python程序
复制代码代码如下:
!/usr/bin/python

import time
## dd/mm/yyyy格式
print (time.strftime("%d/%m/%Y"))

#输出:
11/03/2014


10、使用datetime模块来获取当前的日期和时间
复制代码代码如下:
#!/usr/bin/python
import datetime
i = datetime.datetime.now()
print ("当前的日期和时间是 %s" % i)
print ("ISO格式的日期和时间是 %s" % i.isoformat() )
print ("当前的年份是 %s" %i.year)
print ("当前的月份是 %s" %i.month)
print ("当前的日期是  %s" %i.day)
print ("dd/mm/yyyy 格式是  %s/%s/%s" % (i.day, i.month, i.year) )
print ("当前小时是 %s" %i.hour)
print ("当前分钟是 %s" %i.minute)
print ("当前秒是  %s" %i.second)


附:日期和时间的格式化参数
复制代码代码如下:

%a 星期几的简写
%A 星期几的全称
%b 月分的简写
%B 月份的全称
%c 标准的日期的时间串
%C 年份的后两位数字
%d 十进制表示的每月的第几天
%D 月/天/年
%e 在两字符域中,十进制表示的每月的第几天
%F 年-月-日
%g 年份的后两位数字,使用基于周的年
%G 年分,使用基于周的年
%h 简写的月份名
%H 24小时制的小时
%I 12小时制的小时
%j 十进制表示的每年的第几天
%m 十进制表示的月份
%M 十时制表示的分钟数
%n 新行符
%p 本地的AM或PM的等价显示
%r 12小时的时间
%R 显示小时和分钟:hh:mm
%S 十进制的秒数
%t 水平制表符
%T 显示时分秒:hh:mm:ss
%u 每周的第几天,星期一为第一天 (值从0到6,星期一为0)
%U 第年的第几周,把星期日做为第一天(值从0到53)
%V 每年的第几周,使用基于周的年
%w 十进制表示的星期几(值从0到6,星期天为0)
%W 每年的第几周,把星期一做为第一天(值从0到53)
%x 标准的日期串
%X 标准的时间串
%y 不带世纪的十进制年份(值从0到99)
%Y 带世纪部分的十制年份
%z,%Z 时区名称,如果不能得到时区名称则返回空字符。
%% 百分号

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### Python `datetime` 模块使用指南 #### 1. 基础概念 Python 的 `datetime` 模块提供了一组用于处理日期和时间的对象。主要的类包括 `date`、`time`、`datetime` 和 `timedelta`,它们分别表示日期、时间、日期时间组合以及时间间隔[^1]。 #### 2. 创建日期和时间对象 可以使用多种方式创建日期和时间对象: - **当前日期和时间** 可以通过 `datetime.now()` 获取当前本地时间和日期: ```python from datetime import datetime current_datetime = datetime.now() print(current_datetime) # 输出类似于:2023-09-18 14:37:56.123456 ``` - **指定日期和时间** 通过传递年、月、日等参数创建特定的日期时间对象: ```python specific_date_time = datetime(2023, 9, 18, 14, 30, 0) print(specific_date_time) # 输出:2023-09-18 14:30:00 ``` #### 3. 时间间隔 (`timedelta`) 处理 `timedelta` 对象允许计算两个日期或时间之间的差值,或者基于现有日期增加/减少一段时间: ```python from datetime import timedelta delta = timedelta(days=7, hours=2, minutes=30) future_date = current_datetime + delta past_date = current_datetime - delta print(future_date) # 当前时间加7天2小时30分钟后的日期时间 print(past_date) # 当前时间减去相同时间段的结果 ``` #### 4. 格式化与解析日期时间 - **格式化日期 (strftime)** 将日期时间对象转换为字符串形式: ```python formatted_date = current_datetime.strftime("%Y-%m-%d %H:%M:%S") print(formatted_date) # 输出:2023-09-18 14:37:56 ``` - **解析字符串为日期时间 (strptime)** 将字符串转换回日期时间对象: ```python parsed_date = datetime.strptime("2023-09-18 14:30:00", "%Y-%m-%d %H:%M:%S") print(parsed_date) # 输出:2023-09-18 14:30:00 ``` #### 5. 时区支持 虽然标准库本身不直接支持时区,但结合第三方库 `pytz` 可以轻松解决这一问题: ```python import pytz from datetime import datetime utc_now = datetime.now(pytz.utc) local_tz = pytz.timezone('Asia/Shanghai') local_now = utc_now.astimezone(local_tz) print(utc_now) # UTC 时间 print(local_now) # 转换为上海时区的时间 ``` #### 6. 高级应用 - **日期比较** 可以直接比较两个日期时间对象: ```python if future_date > past_date: print("未来时间晚于过去时间") # 这总是成立 ``` - **时间戳操作** 获取 Unix 时间戳并将其转换为日期时间对象: ```python timestamp = current_datetime.timestamp() converted_back = datetime.fromtimestamp(timestamp) print(timestamp) # 秒数自纪元以来 print(converted_back) # 返回对应的日期时间对象 ``` --- ### 总结 以上内容涵盖了 `datetime` 模块的基础用法及其一些高级特性。熟练掌握这些功能可以帮助开发者更高效地完成涉及日期和时间的任务[^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值