python 日期操作类代码

完整代码

# -*- coding: utf-8 -*-

'''获取当前日期前后N天或N月的日期'''

from time import strftime, localtime
from datetime import timedelta, date
import calendar

year = strftime("%Y",localtime())
mon = strftime("%m",localtime())
day = strftime("%d",localtime())
hour = strftime("%H",localtime())
min = strftime("%M",localtime())
sec = strftime("%S",localtime())

def today():
 '''''
 get today,date format="YYYY-MM-DD"
 '''''
 return date.today()

def todaystr():
 '''
 get date string, date format="YYYYMMDD"
 '''
 return year+mon+day

def datetime():
 '''''
 get datetime,format="YYYY-MM-DD HH:MM:SS"
 '''
 return strftime("%Y-%m-%d %H:%M:%S",localtime())

def datetimestr():
 '''''
 get datetime string
 date format="YYYYMMDDHHMMSS"
 '''
 return year+mon+day+hour+min+sec

def get_day_of_day(n=0):
 '''''
 if n>=0,date is larger than today
 if n<0,date is less than today
 date format = "YYYY-MM-DD"
 '''
 if(n<0):
  n = abs(n)
  return date.today()-timedelta(days=n)
 else:
  return date.today()+timedelta(days=n)

def get_days_of_month(year,mon):
 '''''
 get days of month
 '''
 return calendar.monthrange(year, mon)[1] 

def get_firstday_of_month(year,mon):
 '''''
 get the first day of month
 date format = "YYYY-MM-DD"
 '''
 days="01"
 if(int(mon)<10):
  mon = "0"+str(int(mon))
 arr = (year,mon,days)
 return "-".join("%s" %i for i in arr) 

def get_lastday_of_month(year,mon):
 '''''
 get the last day of month
 date format = "YYYY-MM-DD"
 '''
 days=calendar.monthrange(year, mon)[1]
 mon = addzero(mon)
 arr = (year,mon,days)
 return "-".join("%s" %i for i in arr) 

def get_firstday_month(n=0):
 '''''
 get the first day of month from today
 n is how many months
 '''
 (y,m,d) = getyearandmonth(n)
 d = "01"
 arr = (y,m,d)
 return "-".join("%s" %i for i in arr) 

def get_lastday_month(n=0):
 '''''
 get the last day of month from today
 n is how many months
 '''
 return "-".join("%s" %i for i in getyearandmonth(n)) 

def getyearandmonth(n=0):
 '''''
 get the year,month,days from today
 befor or after n months
 '''
 thisyear = int(year)
 thismon = int(mon)
 totalmon = thismon+n
 if(n>=0):
  if(totalmon<=12):
   days = str(get_days_of_month(thisyear,totalmon))
   totalmon = addzero(totalmon)
   return (year,totalmon,days)
  else:
   i = totalmon/12
   j = totalmon%12
   if(j==0):
    i-=1
    j=12
   thisyear += i
   days = str(get_days_of_month(thisyear,j))
   j = addzero(j)
   return (str(thisyear),str(j),days)
 else:
  if((totalmon>0) and (totalmon<12)):
   days = str(get_days_of_month(thisyear,totalmon))
   totalmon = addzero(totalmon)
   return (year,totalmon,days)
  else:
   i = totalmon/12
   j = totalmon%12
   if(j==0):
    i-=1
    j=12
   thisyear +=i
   days = str(get_days_of_month(thisyear,j))
   j = addzero(j)
   return (str(thisyear),str(j),days) 

def addzero(n):
 '''''
 add 0 before 0-9
 return 01-09
 '''
 nabs = abs(int(n))
 if(nabs<10):
  return "0"+str(nabs)
 else:
  return nabs 

def get_today_month(n=0):
 '''''
 获取当前日期前后N月的日期
 if n>0, 获取当前日期前N月的日期
 if n<0, 获取当前日期后N月的日期
 date format = "YYYY-MM-DD"
 '''
 (y,m,d) = getyearandmonth(n)
 arr=(y,m,d)
 if(int(day)<int(d)):
  arr = (y,m,day)
 return "-".join("%s" %i for i in arr) 

if __name__=="__main__":
 print today()
 print todaystr()
 print datetime()
 print datetimestr()
 print get_day_of_day(20)
 print get_day_of_day(-3)
 print get_today_month(-3)
 print get_today_month(3)

这篇关于python 日期操作类的文章就介绍到这,里面涉及了python日期操作的一些基础知识。

您可能感兴趣的文章:

  • Python实现按当前日期(年、月、日)创建多级目录的方法
  • python 输出上个月的月末日期实例
  • python3获取两个日期之间所有日期,以及比较大小的实例
  • python时间日期函数与利用pandas进行时间序列处理详解
  • python2.7 json 转换日期的处理的示例
  • Python实现生成随机日期字符串的方法示例
  • Python实现自动为照片添加日期并分类的方法
  • Python实现获取照片拍摄日期并重命名的方法
  • Python SQLite3数据库日期与时间常见函数用法分析
  • 利用python获取当前日期前后N天或N月日期的方法示例
  • python 计算两个日期相差多少个月实例代码
  • Python中的日期时间处理详解
(0)

相关推荐

  • Python实现自动为照片添加日期并分类的方法

    本文实例讲述了Python实现自动为照片添加日期并分类的方法.分享给大家供大家参考,具体如下: 小时候没怎么照相,所以跟别人说小时候特别帅他们都不信.小外甥女出生了,我给买了个照相机,让她多照相.可惜他舅目前还是个屌丝,买了个700的屌丝照相机,竟然没有自动加日期的功能.试了几个小软件,都不好用,大的图像软件咱又不会用.身为一个计算机科学与技术专业的学生,只能自立更生了. 听说Python有个图形库,不错,在照片上打日期很容易,于是我就下了这个库.对Python不熟,一面看着手册一面写的.完成了

  • Python实现生成随机日期字符串的方法示例

    本文实例讲述了Python实现生成随机日期字符串的方法.分享给大家供大家参考,具体如下: 生成随机的日期字符串,用于插入数据库. 通过时间元组设定一个时间段,开始和结尾时间转换成时间戳. 时间戳中随机取一个,再生成时间元组,再把时间元组格式化输出为字符串 import time import random a1=(1976,1,1,0,0,0,0,0,0) #设置开始日期时间元组(1976-01-01 00:00:00) a2=(1990,12,31,23,59,59,0,0,0) #设置结束日

  • python 输出上个月的月末日期实例

    如下所示: import dateutil def before_month_lastday(ti): today=dateutil.parser.parse(str(ti)) first = datetime.date(day=1, month=today.month, year=today.year) lastMonth = first - datetime.timedelta(days=1) cc=str(lastMonth.year)+str(lastMonth.month)+str(l

  • 利用python获取当前日期前后N天或N月日期的方法示例

    前言 最近因为工作原因,发现一个Python的时间组件,很好用分享出来!(忘记作者名字了,在这里先感谢了),下面话不多说,来一起看看详细的介绍吧. 示例代码: # -*- coding: utf-8 -*- '''获取当前日期前后N天或N月的日期''' from time import strftime, localtime from datetime import timedelta, date import calendar year = strftime("%Y", localt

  • Python实现按当前日期(年、月、日)创建多级目录的方法

    先看实际效果,现在时间2018.4.26 使用python脚本按照年月日生成多级目录,创建的目录可以将系统生成的日志文件放入其中,方便查阅,代码如下: #!/usr/bin/env python #coding=utf-8 import time import os #获得当前系统时间的字符串 localtime=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) print('localtime='+localtime)

  • Python实现获取照片拍摄日期并重命名的方法

    本文实例讲述了Python实现获取照片拍摄日期并重命名的方法.分享给大家供大家参考,具体如下: python获取照片的拍摄日期并重命名.不支持重复处理的中断. 重命名为:拍摄日期__原文件名 import os import exifread def getExif(filename): FIELD = 'EXIF DateTimeOriginal' fd = open(filename, 'rb') tags = exifread.process_file(fd) fd.close() if

  • python2.7 json 转换日期的处理的示例

    python2.7中 集成了json的处理(simplejson),但在实际应用中,从mysql查询出来的数据,通常有日期格式,这时候,会报一个错: TypeError: datetime.datetime(2007, 7, 23, 12, 24, 25) is not JSON serializable 说明日期转换出问题,后来再网上找到了解决办法. import json from datetime import date, datetime def __default(obj): if i

  • python3获取两个日期之间所有日期,以及比较大小的实例

    如下所示: import datetime #获取两个日期间的所有日期 def getEveryDay(begin_date,end_date): date_list = [] begin_date = datetime.datetime.strptime(begin_date, "%Y-%m-%d") end_date = datetime.datetime.strptime(end_date,"%Y-%m-%d") while begin_date <=

  • python 计算两个日期相差多少个月实例代码

    近期,由于业务需要计算两个日期之前相差多少个月.我在网上找了很久,结果发现万能的python,居然没有一个模块计算两个日期的月数,像Java.C#之类的高级语言,都会有(date1-date2).months的现成方法,觉得不可思议.说句实在的,一直觉得python 的日期处理模块真心不好用. 哦,对了,别跟我说 datetime, calendar, dateutil 这些模块,因为我都试过了,都没用.有个竟然算出来还有错.datetime.timedelta只能计算出日时分秒.对年月却不支持

  • Python中的日期时间处理详解

    Python中关于时间.日期的处理库有三个:time.datetime和Calendar,其中datetime又有datetime.date.datetime.time.datetime.datetime三个类.而时间又可以分为时间戳.本地时间和UTC时间(世界标准时间).是不是听起来有点乱?那么他们相互之间有什么区别?有什么联系?又如何转换呢? time模块 在time模块中,时间有三种表现形式: 时间戳,一般指Unix时间戳,是从1970年开始到现在的秒数. 本地时间的struct_time

  • Python SQLite3数据库日期与时间常见函数用法分析

    本文实例讲述了Python SQLite3数据库日期与时间常见函数.分享给大家供大家参考,具体如下: import sqlite3 #con = sqlite3.connect('example.db') con = sqlite3.connect(":memory:") c = con.cursor() # Create table c.execute('''CREATE TABLE stocks (date text, trans text, symbol text, qty re

  • python时间日期函数与利用pandas进行时间序列处理详解

    python标准库包含于日期(date)和时间(time)数据的数据类型,datetime.time以及calendar模块会被经常用到. datetime以毫秒形式存储日期和时间,datetime.timedelta表示两个datetime对象之间的时间差. 下面我们先简单的了解下python日期和时间数据类型及工具 给datetime对象加上或减去一个或多个timedelta,会产生一个新的对象 from datetime import datetime from datetime impo

随机推荐