python的常用日期处理datetime模块

发布时间:2024-12-09 22:02

数据分析常用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 实现自动化假期提醒:法定工作日查询助你轻松安排日程

随便看看