isoweekday和weekday的区别
1
2
3
4
5
|
import datetime datetime.datetime.now() 表示当前时间 datetime.datetime.now().isoweekday() # 返回1-7,代表周一到周日,当前时间所在本周第几天; datetime.datetime.now().weekday() # 返回的0-6,代表周一到周日 |
另外,标准格式 %w 中,1-6表示周一到周六,0代表周日
1
2
3
4
5
6
7
8
9
10
11
12
|
import datetime now_time = datetime.datetime.now() # 当前时间 print (now_time) day_num = now_time.isoweekday() # 当前时间所在本周第几天 print (day_num) monday = (now_time - datetime.timedelta(days = day_num - 1 )) # 本周周一时间 print (monday) - - - - - - - - - - 2019 - 06 - 20 09 : 45 : 07.349007 4 2019 - 06 - 17 09 : 45 : 07.349007 |
datetime.date类介绍
date类是一个日期类,由年、月、日组成。
由于Python也是面向对象编程语言,所以针对类,就会有构造函数,该类的构造函数如下:
class datetime.date(year, month, day):
-
year
: 表示年,范围[MINYEAR, MAXYEAR],即[1, 9999] -
month
: 表示月,范围[1, 12] -
day
:一月中第几天,最大值根据给定的year,month参数来决定。例如闰年2月份有29天
一、date对象所能表示的最大最小日期,返回的是datetime.date类型的对象
1
2
3
4
5
6
|
>>> import datetime >>> datetime.date. max datetime.date( 9999 , 12 , 31 ) >>> print datetime.date. min 0001 - 01 - 01 >>> |
二、date.today() 函数:返回一个当前本地日期的date类型的对象
1
2
3
4
5
|
>>> datetime.date.today() datetime.date( 2018 , 1 , 16 ) >>> print datetime.date.today() 2018 - 01 - 16 >>> |
三、date.fromtimestamp()函数:根据给定的时间戳,返回一个date对象
1
2
3
4
5
6
7
8
9
10
11
|
>>> import datetime >>> import time >>> now = time.time() >>> print now 1516110787.69 >>> s = datetime.date.fromtimestamp(now) >>> s datetime.date( 2018 , 1 , 16 ) >>> print s 2018 - 01 - 16 >>> |
四、date.weekday()函数:参数必须是一个date类型的对象,返回该日期是一周中的第几天。返回值是一个整型。星期一,返回0;星期二,返回1。。。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
>>> s = datetime.date.today() >>> print s 2018 - 01 - 16 >>> s datetime.date( 2018 , 1 , 16 ) >>> type (s) < type 'datetime.date' > >>> d = datetime.date.weekday(s) >>> d 1 >>> print d 1 >>> type (d) < type 'int' > >>> |
五、date.isoweekday()函数:该函数需要一个datetime.date类型的参数。返回weekday中的星期几,星期一,返回1;星期二,返回2;以此类推。
1
2
3
4
5
6
7
8
9
10
11
|
>>> s = datetime.date.today() >>> print s 2018 - 01 - 16 >>> s datetime.date( 2018 , 1 , 16 ) >>> d = datetime.date.isoweekday(s) >>> d 2 >>> type (d) < type 'int' > >>> |
六、date.isocalendar()函数:该函数需要一个datetime.date类型的参数。返回date类型对象中的year(年),week(周),weekday(一周中的第几天),返回值是一个元组
1
2
3
4
5
6
7
8
9
10
11
12
13
|
>>> s = datetime.date.today() >>> print s 2018 - 01 - 16 >>> s datetime.date( 2018 , 1 , 16 ) >>> d = datetime.date.isocalendar(s) >>> d ( 2018 , 3 , 2 ) >>> print d ( 2018 , 3 , 2 ) - - - - 代表 2018 年中的第 3 周,第三周中的第 2 天 >>> type (d) < type 'tuple' > >>> |
1
2
3
4
5
6
7
8
9
10
11
|
>>> s = datetime.date( 2018 , 1 , 14 ) >>> s datetime.date( 2018 , 1 , 14 ) >>> print s 2018 - 01 - 14 >>> d ( 2018 , 3 , 2 ) >>> d = datetime.date.isocalendar(s) >>> d ( 2018 , 2 , 7 ) - - - - 代表 2018 年中的第 3 周,第三周中的第 7 天 >>> |
七、date.strftime(fmt) 返回自定义格式的时间字符串。fmt是自定义的时间格式
1
2
3
4
5
6
7
8
9
10
11
|
>>> a = datetime.date.today() >>> a datetime.date( 2018 , 1 , 16 ) >>> b = a.strftime( "%Y-%m-%d %H:%M:%S" ) >>> b '2018-01-16 00:00:00' >>> print b 2018 - 01 - 16 00 : 00 : 00 >>> type (b) < type 'str' > >>> |
八、.replace(year, month, day):生成一个新的日期对象 用参数指定的年,月,日代替原有对象中的属性。(原有对象仍保持不变)
1
2
3
4
5
6
7
8
9
|
>>> date1 datetime.date( 2018 , 1 , 16 ) >>> date_new = date1.replace(year = 2017 ) >>> date_new datetime.date( 2017 , 1 , 16 ) >>> date_new = date1.replace(day = 30 ) >>> date_new datetime.date( 2018 , 1 , 30 ) >>> |
九、日期的其他操作--日期加上一个时间间隔(datetime.timedela类的对象)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
>>> now = datetime.date.today() >>> now datetime.date( 2018 , 1 , 16 ) >>> print now 2018 - 01 - 16 >>> b = datetime.timedelta(days = 10 ) >>> b datetime.timedelta( 10 ) >>> type (b) < type 'datetime.timedelta' > >>> print b 10 days, 0 : 00 : 00 >>> print now + b 2018 - 01 - 26 >>> print now - b 2018 - 01 - 06 >>> print now - b - b 2017 - 12 - 27 >>> |
十、日期的其他操作--两个date类型对象相减。返回两个日期的间隔对象,即:datetime.timedelta类型的对象
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
>>> date1 = datetime.date.today() >>> date2 = date1.replace(day = 19 ) >>> print date1 2018 - 01 - 16 >>> print date2 2018 - 01 - 19 >>> print type (date1), type (date2) < type 'datetime.date' > < type 'datetime.date' > >>> print date2 - date1 3 days, 0 : 00 : 00 >>> print date1 - date2 - 3 days, 0 : 00 : 00 >>> print date2 + datetime.timedelta(days = 35 ) 2018 - 02 - 23 >>> print type (date2 - date1) < type 'datetime.timedelta' > >>> |
十一、日期的其它操作--比较日期大小
date1 < date2 返回比较结果布尔值,真返回True,假返回False
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/weixin_42009030/article/details/92968949