python的常用日期处理datetime模块
数据分析常用R或Python进行处理 #生活知识# #生活经验# #编程#
一 Python 中 日期类型 与字符串互转的问题
1 字符串 转成 datetime 类型
# 函数 datetime.datetime.strptime()
def strptime(cls, date_string, format):pass 这个函数 需要传入两个参数 date_string 即日期字符串, format 即日期的格式
看下面代码, 很方便就能把str 转成 datetime 类型
import datetime
datestr1='2017-03-28'
datestr2='2017-03-31'
date1 = datetime.datetime.strptime(datestr1, '%Y-%m-%d')
date2 = datetime.datetime.strptime(datestr2, '%Y-%m-%d')
日期差值
diff_days = (date2 -date1).days
datetime.datetime.strptime('2015-6-1 18:19:59', '%Y-%m-%d %H:%M:%S')
2 datetime 类型 转成 字符串
# 函数 datetime.datetime.strftime() 看下 声明
def strftime(self, fmt: Union[str, unicode]) -> str: ...
dt1 = datetime.datetime.strptime("2012-10-12 21:08:12", "%Y-%m-%d %H:%M:%S")
dt2 = datetime.datetime.strptime("2012-09-12 21:08:12", "%Y-%m-%d %H:%M:%S")
import datetime
date = datetime.datetime.now()
datestr = date.strftime('%Y-%m-%d')
datestr2 = str(date)
dt,_ =datestr2.split('.')
'结果如下:
datestr
'2018-03-03'
datestr2
'2018-03-03 17:12:13.383474'
dt
'2018-03-03 17:12:13'
#Python时间日期操作大全
http://blog.csdn.net/yl2isoft/article/details/52077991
常用的格式 符号
字符串 ---》 datetime
datetime.datetime.strptime(time_str, fmt)
%a 星期几的简写 Weekday name, abbr.
%A 星期几的全称 Weekday name, full
%b 月分的简写 Month name, abbr.
%B 月份的全称 Month name, full
%c 标准的日期的时间串 Complete date and time representation
%d 十进制表示的每月的第几天 Day of the month
%H 24小时制的小时 Hour (24-hour clock)
%I 12小时制的小时 Hour (12-hour clock)
%j 十进制表示的每年的第几天 Day of the year
%m 十进制表示的月份 Month number
%M 十时制表示的分钟数 Minute number
%S 十进制的秒数 Second number
%U 第年的第几周,把星期日做为第一天(值从0到53)Week number (Sunday first weekday)
%w 十进制表示的星期几(值从0到6,星期天为0)weekday number
%W 每年的第几周,把星期一做为第一天(值从0到53) Week number (Monday first weekday)
%x 标准的日期串 Complete date representation (e.g. 13/01/08)
%X 标准的时间串 Complete time representation (e.g. 17:02:10)
%y 不带世纪的十进制年份(值从0到99)Year number within century
%Y 带世纪部分的十制年份 Year number
%z,%Z 时区名称,如果不能得到时区名称则返回空字符。Name of time zone
%% 百分号
二 日期相加减的问题
首先 常用的换算关系
millisecond = 1000 microseconds
minute = 60 seconds
hour = 3600 seconds
week = 7 days
在datetime模块,有一个类 timedelta 来进行日期的相加减操作
from datetime import datetime,date,time,timedelta
dt = datetime(2018, 3, 1, 19, 40, 30)
dt = datetime(2018, 3, 1, 19, 40, 30, 356102)
dt2 = dt + timedelta(days=5)
dt2 = dt - timedelta(days=5)
dt3 = dt + timedelta()
now = datetime.now()
hours = timedelta(hours=2)
dt3=now -hours
dt3 = now + hours
def __new__(cls, days=None, seconds=None, microseconds=None, milliseconds=None, minutes=None, hours=None, weeks=None):
pass
dt = datetime(2018, 3, 1, 19, 40, 30)
weeks = timedelta(weeks=2)
dt2 = dt + weeks
dt2 = dt - weeks
dt = datetime(2018, 3, 1, 19, 40, 30)
dt2 = datetime(2018, 4, 15, 39, 20, 30)
my_timedelta= dt2 -dt
now = datetime.now()
hours = timedelta(hours=2)
now -hours
datetime.datetime(2018, 3, 1, 17, 57, 15, 901533)
dt3=now -hours
now
datetime.datetime(2018, 3, 1, 19, 57, 15, 901533)
dt3
datetime.datetime(2018, 3, 1, 17, 57, 15, 901533)
dt = datetime(2018, 3, 1, 19, 40, 30)
hours = timedelta(hours=3)
dt2 = dt1+hours
m = dt2-dt
m.days
m.seconds
m.seconds
timedelta.total_seconds()方法:返回该时间差 以秒为单位的值
他们是有点区别的.
如果 timedelta 是正的时间, 则这两个结果是一样的
如果 timedelta 是负的时间, 则 total_seconds() 会显示负值, 二属性 seconds 则会向前借位保证数据是正值
m2=dt-dt2
m2.seconds
75600
m2.total_seconds()
-10800.0
还有 小小的建议,如果使用datetime 模块 有两种导入方式, import xxx, from datetime import xxxx
这两种都是可以的,但是 如果在项目中 应该保持一种风格, 如果不统一,会出现覆盖类名的现象, 因为 datetime 里面有一个 datetime类,所以 使用这个模块 最好统一导入方式. datetime 模块 处理时间有很多的方便的地方, 但是 还有一些不足,比如没有计算date 之间相差月份等,一般常用的功能都有的.
from datetime import datetime
import time
t = time.time()
t
1559644733.766329
dt = datetime.fromtimestamp(t)
datetime.datetime(2019, 6, 4, 18, 38, 53, 766329)
now = datetime.now()
now
datetime.datetime(2019, 6, 4, 18, 39, 54, 860377)
now.timestamp()
1559644794.860377
参考文档:
http://blog.csdn.net/yl2isoft/article/details/52077991
http://blog.csdn.net/yuhentian/article/details/78167440
https://docs.python.org/2/library/datetime.html?#timedelta-objects
分享快乐,留住感动. 2018-03-03 17:29:29 --frank
网址:python的常用日期处理datetime模块 https://www.yuejiaxmz.com/news/view/428667
相关内容
Python Base64模块的使用6个Python脚本,轻松实现日常任务自动化
python 智能家居控制模块
python serial模块的使用
分享10个Python自动化脚本,解决日常问题
轻松实现日常任务自动化的6个Python脚本
python中缓存模块的一些用法
掌握Python,高效生活:揭秘5个实用脚本,轻松解决日常编程难题!
十个自动化日常任务的Python脚本
Python 实现自动化假期提醒:法定工作日查询助你轻松安排日程