python动态日期函数 python 日期模块

python之time模块

time 模块常用的与时间相关的类和函数:

创新互联公司-专业网站定制、快速模板网站建设、高性价比乌当网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式乌当网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖乌当地区。费用合理售后完善,十余年实体公司更值得信赖。

time 模块的 struct_time 类代表一个时间对象,可以通过 索引和属性名 访问值。 对应关系如下:

索引 —— 属性 值

0 —— tm_year(年) 如:1945

1 —— tm_mon(月) 1 ~ 12

2 —— tm_mday(日) 1 ~ 31

3 —— tm_hour(时) 0 ~ 23

4 —— tm_min(分) 0 ~ 59

5 —— tm_sec(秒) 0 ~ 61

6 —— tm_wday(周) 0 ~ 6

7 —— tm_yday(一年内第几天) 1 ~ 366

8 —— tm_isdst(夏时令) -1、0、1

localtime() 表示当前时间,返回类型为 struct_time 对象 ,示例如下所示:

输出结果:

time()——返回当前时间的时间戳

gmtime([secs])——将时间戳转换为格林威治天文时间下的 struct_time,可选参数 secs 表示从 epoch 到现在的秒数,默认为当前时间

localtime([secs])——与 gmtime() 相似,返回当地时间下的 struct_time

mktime(t) localtime() 的反函数

asctime([t]) 接收一个 struct_time 表示的时间,返回形式为:Mon Dec 2 08:53:47 2019 的字符串

ctime([secs]) ctime(secs) 相当于 asctime(localtime(secs))

strftime(format[, t]) 格式化日期,接收一个 struct_time 表示的时间,并返回以可读字符串表示的当地时间

sleep(secs) 暂停执行调用线程指定的秒数

altzone 本地 DST 时区的偏移量,以 UTC 为单位的秒数

timezone 本地(非 DST)时区的偏移量,UTC 以西的秒数(西欧大部分地区为负,美国为正,英国为零)

tzname 两个字符串的元组:第一个是本地非 DST 时区的名称,第二个是本地 DST 时区的名称

基本使用如下所示:

strftime 函数日期格式化符号说明如下所示:

python如何求2020年第19周起止日期: 2020年第19周(5月4日-5月10日)?

import datetime

first_day=datetime,datetime(2020,1,1)。

print(first_day,weekday())#返回日期是星期几,[0,6],0表示星期一,返回了2,表示星期三,2020的第一周只有5天。

foriinrange(0,7):end_day=datetime。timedelta(days=17*7+5+i)#当i=0,2020年1月1日到18周的最后一天共多少天。

data=datetime。datetime,strftime(first_day+end_day,"%Y-%m-%d")#first_day也算一天。

面向对象:

Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。

Python支持重载运算符和动态类型。相对于Lisp这种传统的函数式编程语言,Python对函数式设计只提供了有限的支持。

Python中处理时间的几种方法小结

python中的时间模块主要有time, datetime。

I, time模块

time模块中包含了四种时间格式:

float格式,即给定时间相对于epoch增加的秒数

tuple格式,一个九元组 (tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec, tm_wday, tm_yday, tm_isdst)

string格式,'Mon Feb 6 15:00:06 2012'

format格式,以指定的格式生成的时间

针对这几种时间格式,time模块提供了函数在格式之间相互转换。

asctime(tuple) -string

ctime(float) -string

gmtime(float) -tuple

localtime(float) -tuple

mktime(tuple) -float

strftime(format, tuple) -format string

strptime(formatstring, format) -tuple

time() - float

上述函数中,除了time()函数直接返回当前时间相对于epoch的秒数外,其他函数都要求有时间的输入,如果没有输入,则默认使用当前时间。

另外,strftime和strptime中的format使用下面的格式:

%a 英文星期简写

%A 英文星期的完全

%b 英文月份的简写

%B 英文月份的完全

%c 显示本地日期时间

%d 日期,取1-31

%H 小时, 0-23

%I 小时, 0-12

%m 月, 01 -12

%M 分钟,1-59

%j 年中当天的天数

%w 显示今天是星期几

%W 第几周

%x 当天日期

%X 本地的当天时间

%y 年份 00-99间

%Y 年份的完整拼写

%S 秒(00-59)

除了上述的时间转换函数之外,模块还提供了下面的函数:

clock() 返回进程的创建时间,以秒计数的float

sleep(float) sleep一段时间,以秒计数

tzset() 更改时区

II, datetime

datetime模块定义了下面这几个类:

datetime.date:表示日期的类。常用的属性有year, month, day;datetime.time:表示时间的类。常用的属性有hour, minute, second, microsecond;datetime.datetime:表示日期时间。datetime.timedelta:表示时间间隔,即两个时间点之间的长度。datetime.tzinfo:与时区有关的相关信息。(这里不详细充分讨论该类,感兴趣的童鞋可以参考python手册)

注 :上面这些类型的对象都是不可变(immutable)的。

下面详细介绍这些类的使用方式。

date类

date类表示一个日期。日期由年、月、日组成(地球人都知道~~)。date类的构造函数如下:

class datetime.date(year, month, day):参数的意义就不多作解释了,只是有几点要注意一下:

year的范围是[MINYEAR, MAXYEAR],即[1, 9999];month的范围是[1, 12]。(月份是从1开始的,不是从0开始的~_~);day的最大值根据给定的year, month参数来决定。例如闰年2月份有29天;

date类定义了一些常用的类方法与类属性,方便我们操作:

date.max、date.min:date对象所能表示的最大、最小日期;date.resolution:date对象表示日期的最小单位。这里是天。date.today():返回一个表示当前本地日期的date对象;date.fromtimestamp(timestamp):根据给定的时间戮,返回一个date对象;datetime.fromordinal(ordinal):将Gregorian日历时间转换为date对象;(Gregorian Calendar :一种日历表示方法,类似于我国的农历,西方国家使用比较多,此处不详细展开讨论。)

Python获取当前时间前、后一个月的函数

这需求折腾了我半天..

import time

import datetime as datetime

def late_time(time2):

# 先获得时间数组格式的日期

#time2是外部传入的任意日期

now_time = datetime.datetime.strptime(time2, '%Y-%m-%d')

#如需求是当前时间则去掉函数参数改写      为datetime.datetime.now()

threeDayAgo = (now_time - datetime.timedelta(days =30))

# 转换为时间戳

timeStamp =int(time.mktime(threeDayAgo.timetuple()))

# 转换为其他字符串格式

otherStyleTime = threeDayAgo.strftime("%Y-%m-%d")

return otherStyleTime

a = late_time("2019-3-30")

print(a)# 打印2018-02-28


网站栏目:python动态日期函数 python 日期模块
转载注明:http://ybzwz.com/article/dogdjog.html