Python实用日期时间处理方法

   这篇文章主要介绍了Python实用日期时间处理方法汇总,本文讲解了获取当前datetime、获取当天date、获取明天/前N天、获取当天开始和结束时间(00:00:00 23:59:59)、获取两个datetime的时间差、获取本周/本月/上月最后一天等实用方法 ,需要的朋友可以参考下

  原则, 以datetime为中心, 起点或中转, 转化为目标对象, 涵盖了大多数业务场景中需要的日期转换处理

  步骤:

  1. 掌握几种对象及其关系

  2. 了解每类对象的基本操作方法

  3. 通过转化关系转化

  涉及对象

  1. datetime

   代码如下:

  >>> import datetime

  >>> now = datetime.datetime.now()

  >>> now

  datetime.datetime(2015, 1, 12, 23, 9, 12, 946118)

  >>> type(now)

  

  2. timestamp

  代码如下:

  >>> import time

  >>> time.time()

  1421075455.568243

  3. time tuple

   代码如下:

  >>> import time

  >>> time.localtime()

  time.struct_time(tm_year=2015, tm_mon=1, tm_mday=12, tm_hour=23, tm_min=10, tm_sec=30, tm_wday=0, tm_yday=12, tm_isdst=0)

  4. string

   代码如下:

  >>> import datetime

  >>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")

  '2015-01-12 23:13:08'

  5. date

    代码如下:

  >>> import datetime

  >>> datetime.datetime.now().date()

  datetime.date(2015, 1, 12)

  datetime基本操作

  1. 获取当前datetime

   代码如下:

  >>> import datetime

  >>> datetime.datetime.now()

  datetime.datetime(2015, 1, 12, 23, 26, 24, 475680)

  2. 获取当天date

   代码如下:

  >>> datetime.date.today()

  datetime.date(2015, 1, 12)

  3. 获取明天/前N天

  明天

   代码如下:

  >>> datetime.date.today() + datetime.timedelta(days=1)

  datetime.date(2015, 1, 13)

  三天前

   代码如下:

  >>> datetime.datetime.now()

  datetime.datetime(2015, 1, 12, 23, 38, 55, 492226)

  >>> datetime.datetime.now() - datetime.timedelta(days=3)

  datetime.datetime(2015, 1, 9, 23, 38, 57, 59363)

  4. 获取当天开始和结束时间(00:00:00 23:59:59)

   代码如下:

  >>> datetime.datetime.combine(datetime.date.today(), datetime.time.min)

  datetime.datetime(2015, 1, 12, 0, 0)

  >>> datetime.datetime.combine(datetime.date.today(), datetime.time.max)

  datetime.datetime(2015, 1, 12, 23, 59, 59, 999999)

  5. 获取两个datetime的时间差

   代码如下:

  >>> (datetime.datetime(2015,1,13,12,0,0) - datetime.datetime.now()).total_seconds()

  44747.768075

  6. 获取本周/本月/上月最后一天

  本周

   代码如下:

  >>> today = datetime.date.today()

  >>> today

  datetime.date(2015, 1, 12)

  >>> sunday = today + datetime.timedelta(6 - today.weekday())

  >>> sunday

  datetime.date(2015, 1, 18)

  本月

   代码如下:

  >>> import calendar

  >>> today = datetime.date.today()

  >>> _, last_day_num = calendar.monthrange(today.year, today.month)

  >>> last_day = datetime.date(today.year, today.month, last_day_num)

  >>> last_day

  datetime.date(2015, 1, 31)

  获取上个月的最后一天(可能跨年)

   代码如下:

  >>> import datetime

  >>> today = datetime.date.today()

  >>> first = datetime.date(day=1, month=today.month, year=today.year)

  >>> lastMonth = first - datetime.timedelta(days=1)

  关系转换

  几个关系之间的转化

  Datetime Object / String / timestamp / time tuple

  关系转换例子

  datetime <=> string

  datetime -> string

   代码如下:

  >>> import datetime

  >>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")

  '2015-01-12 23:13:08'

  string -> datetime

   代码如下:

  >>> import datetime

  >>> datetime.datetime.strptime("2014-12-31 18:20:10", "%Y-%m-%d %H:%M:%S")

  datetime.datetime(2014, 12, 31, 18, 20, 10)

  datetime <=> timetuple

  datetime -> timetuple

   代码如下:

  >>> import datetime

  >>> datetime.datetime.now().timetuple()

  time.struct_time(tm_year=2015, tm_mon=1, tm_mday=12, tm_hour=23, tm_min=17, tm_sec=59, tm_wday=0, tm_yday=12, tm_isdst=-1)

  timetuple -> datetime

   代码如下:

  timetuple => timestamp => datetime [看后面datetime<=>timestamp]

  datetime <=> date

  datetime -> date

   代码如下:

  >>> import datetime

  >>> datetime.datetime.now().date()

  datetime.date(2015, 1, 12)

  date -> datetime

   代码如下:

  >>> datetime.date.today()

  datetime.date(2015, 1, 12)

  >>> today = datetime.date.today()

  >>> datetime.datetime.combine(today, datetime.time())

  datetime.datetime(2015, 1, 12, 0, 0)

  >>> datetime.datetime.combine(today, datetime.time.min)

  datetime.datetime(2015, 1, 12, 0, 0)

  datetime <=> timestamp

  datetime -> timestamp

   代码如下:

  >>> now = datetime.datetime.now()

  >>> timestamp = time.mktime(now.timetuple())

  >>> timestamp

  1421077403.0

  timestamp -> datetime

  代码如下:

  >>> datetime.datetime.fromtimestamp(1421077403.0)

  datetime.datetime(2015, 1, 12, 23, 43, 23)

时间: 2024-11-16 14:59:56

Python实用日期时间处理方法的相关文章

Python简单格式化时间的方法【strftime函数】_python

本文实例讲述了Python简单格式化时间的方法,分享给大家供大家参考,具体如下: walker经常用到当前时间和相对时间,用来统计程序执行的效率,简单记一下,便于copy. >>> import time >>> startTime = time.time() >>> '%.2fs' % (time.time() - startTime) #相对时间 '24.51s' >>> '{:.2f}s'.format(time.time()

js获得当前系统日期时间的方法

  这篇文章主要介绍了js获得当前系统日期时间的方法,涉及javascript操作日期时间的相关技巧,非常简单实用,需要的朋友可以参考下 本文实例讲述了js获得当前系统日期时间的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTM

js获得当前系统日期时间的方法_javascript技巧

本文实例讲述了js获得当前系统日期时间的方法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <

python修改操作系统时间的方法

  本文实例讲述了python修改操作系统时间的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 #-*- coding:utf-8 -*- import socket import struct import time import win32api TimeServer = '210.72.145.44' #国家授时中心ip Port = 123 def getTime(

使用DateTime的ParseExact方法实现特殊日期时间的方法详解(转)

本篇文章是对使用DateTime的ParseExact方法实现特殊日期时间的方法进行了详细的分析介绍,需要的朋友参考下 今天遇到一个特别的需求,需要从下面的字符串中转换成一个DateTime对象: [07-13 15:50:42] 主要问题是这个时间不是标准的时间,而是自定义的格式,即开头是月-日,然后是时间. 使用最常用的DateTime.Parse(string dateTimeStr)无法转换,问题就在于这个自定义格式上. 搜索了之后,我找到了下面的方法: public static Da

Java日期时间使用方法汇总_java

一.Java中的日期概述 日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中,日期的国际化,日期和时间之间的转换,日期的加减运算,日期的展示格式都是非常复杂的问题.  在Java中,操作日期主要涉及到一下几个类: 1.java.util.Date        类 Date 表示特定的瞬间,精确到毫秒.从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和分析日期字符串.Date 中的把日期解释为年.月.

JavaScript计算日期时间的方法

由于博客全部改版为PJAX(pushState + ajax).因此,类似于作品等列表都是使用接口读的,后台返回的时间是一个MySQL时间戳,并不能直接使用,需要格式化成指定的字符串.以前这些都是后台搞完返回,现在需要在前端去实现,总结了下博客改版过程中使用到的关于日期时间的方法,主要有parseTime格式化和timeAgo多久之前两个方法.前者就是我们常见到的类似于2015-12-30 12:00.12月20日这种,后者则是类似于2天前,3周前这种,都是比较常用的. parseTime()

Python常用的日期时间处理方法示例_python

#-*- coding: utf-8 -*- import datetime #给定日期向后N天的日期 def dateadd_day(days): d1 = datetime.datetime.now() d3 = d1 + datetime.timedelta(days) return d3 #昨天 def getYesterday(): today = datetime.date.today() oneday = datetime.timedelta(days=1) yesterday =

Python获取当前时间的方法_python

我有的时候写程序要用到当前时间,我就想用python去取当前的时间,虽然不是很难,但是老是忘记,用一次丢一次,为了能够更好的记住,我今天特意写下获取当前时间的方法,如果你觉的对你有用的话,可以收藏下. 取得时间相关的信息的话,要用到python time模块,python time模块里面有很多非常好用的功能,你可以去官方文档了解下,要取的当前时间的话,要取得当前时间的时间戳,时间戳好像是1970年到现在时间相隔的时间. 你可以试下下面的方式来取得当前时间的时间戳:import timeprin