time的常用函数—拼字定义的日期

第九章-时间
time的常用函数—拼字定义的日期

直接使用字符串拼接成格式时间字符串

import time
formatTime=time.localtime()
formatTime
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=6, tm_hour=15, tm_min=48, tm_sec=37, tm_wday=5, tm_yday=279, tm_isdst=0)

str(formatTime.tm_year) + “年” +str(formatTime.tm_mon) + “月” + str(formatTime.tm_mday) + “日” +str(formatTime.tm_hour) + “点”+str(formatTime.tm_min)+“分”+str(formatTime.tm_sec)+“秒”
‘2018年10月6日15点48分37秒’

将当前时间的时间戳转换成想要的时间格式字符串

import time
import locale
locale.setlocale(locale.LC_CTYPE,‘chinese’)
‘Chinese_China.936’

strTime=time.strftime("%Y年-%m月-%d日 %H:%M:%S",time.localtime())
strTime
‘2018年-10月-06日 15:53:08’

获取当前时间的年月日小时分钟秒

import time
time.strftime(’%Y/%m/%d %H:%M:%S’)
‘2018/10/06 15:54:50’

time.strftime(’%Y/%m/%d %H:%M:%S’)
‘2018/10/06 15:55:38’

import time
now=time.localtime()
now
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=6, tm_hour=15, tm_min=56, tm_sec=30, tm_wday=5, tm_yday=279, tm_isdst=0)

time.strftime(’%Y-%m-%d %H:%M:%S’,now) #获取当前时间的格式化时间
‘2018-10-06 15:56:30’

time.strftime(’%a’,now) #星期的简写
‘Sat’

time.strftime(’%A’,now) #星期的全写
‘Saturday’

time.strftime(’%b’,now) #月份的简写
‘Oct’

time.strftime(’%B’,now) #月份的全写
‘October’

time.strftime(’%c’,now) #得到日期时间的字符串
‘Sat Oct 6 15:56:30 2018’

time.strftime(’%x’,now) #日期字符串
‘10/06/18’

time.strftime(’%X’,now) #时间字符串
‘15:56:30’

time.strftime(’%w’,now) #今天在这周是星期几
‘6’

time.strftime(’%W’,now) #今天在这一年的第几周,以星期一为一个星期的开始
‘40’

time.strftime(’%j’,now) #今天是今年的第几天
‘279’

time.strftime(’%U’,now) #这周是今天的第几周,以星期天为一个星期的开始
‘39’

strptime函数
strptime:将格式字符串转化成struct_time;该函数是time.strftime()函数的逆操作。
time strptime() 函数根据指定的格式把一个时间字符串解析为时间元组。所以函数返回的是struct_time对象。
参数:
string :时间字符串
format:格式化字符串

stime = “2015-08-24 13:01:30”
formattime = time.strptime(stime,"%Y-%m-%d %H:%M:%S")
formattime
time.struct_time(tm_year=2015, tm_mon=8, tm_mday=24, tm_hour=13, tm_min=1, tm_sec=30, tm_wday=0, tm_yday=236, tm_isdst=-1)

for i in formattime:
… print(i,end=" ")

2015 8 24 13 1 30 0 236 -1 >>>

注意:在使用strptime()函数将一个指定格式的时间字符串转化成元组时,参数format的格式必须和string的格式保持一致,如果string中日期间使用“-”分隔,format中也必须使用“-”分隔,时间中使用冒号“:”分隔,后面也必须使用冒号分隔,否则会报格式不匹配的错误。

datetime模块详解:
datetime模块是Python中另一个用于操作时间的内置模块,是基于time包的一个高级包。相比于time模块, datetime模块的接口更直观、更容易调用。
datetime可以理解为date和time两个部分组成, date是指年月日构成的日期(相当于日历), time是指时分秒微妙构成的一天24小时中的具体时间(相当于手表) 。
由此可以将这两个分开管理(datetime.date类,datetime.time类),也可以将两者合并在一起(datetime.datetime类)。下面就分别介绍一下datetime模块中的这几个类。

datetime模块定义了两个常量:
datetime.MINYEAR :最小年份, MINYEAR = 1。
datetime.MAXYEAR:最大年份。 MAXYEAR = 9999。

import datetime #引入datetime模块
datetime.MINYEAR
1

datetime.MAXYEAR
9999

datetime模块定义了下面几个类:
datetime.date:日期类。常用的属性有year, month, day;
datetime.time:时间类。常用的属性有hour, minute, second, microsecond;
datetime.timedelta:表示时间间隔,即两个时间点之间的长度。
datetime.tzinfo:与时区有关的信息。
注意:这些类中的对象都是不可被改变的。

datetime.date
<class ‘datetime.date’>

datetime.time
<class ‘datetime.time’>

datetime.timedelta
<class ‘datetime.timedelta’>

datetime.tzinfo
<class ‘datetime.tzinfo’>

datetime.date 类:
date类是一个日期类,由年、月、日组成。由于Python也是面向对象编程语言,所以针对类,就会有构造函数,该类的构造函数如下:
class datetime.date(year, month, day):
year : 表示年,范围[MINYEAR, MAXYEAR],即[1, 9999]
month : 表示月,范围[1, 12]
day :一月中第几天,最大值根据给定的year,month参数来决定。例如闰年2月份有29天

import datetime
datetime.date.max #获取date能表示的最大日期
datetime.date(9999, 12, 31)

print(datetime.date.max)
9999-12-31

datetime.date.min #获取date能表示的最小日期
datetime.date(1, 1, 1)

print(datetime.date.min)
0001-01-01

date的常用函数
1)date.today()函数:该函数返回一个表示当前本地日期的date对象,表示今天的日期。

import datetime
t=datetime.date.today() #今天的日期
t
datetime.date(2018, 10, 6)

print(t)
2018-10-06

2)date.fromtimestamp()函数:根据给定的时间戳timestamp,返回一个date对象。

import datetime
import time
mow=time.time() #获取当前时间的时间戳
mow
1538815001.718506

print(mow)
1538815001.718506

s=datetime.date.fromtimestamp(mow) #将时间戳转换为date类型的时间
s
datetime.date(2018, 10, 6)

print(s)
2018-10-06

3)date.weekday函数:返回weekday中的星期几,星期一,返回0;星期二,返回1;以此类推。该函数需要一个datetime.date类型的参数。

import datetime
now=datetime.date.today() #获取今天日期
now
datetime.date(2018, 10, 6)

print(now)
2018-10-06

datetime.date.weekday(now) #查看今天是这周的第几天
5

print(datetime.date.weekday(now))
5

4)date.isoweekday函数:返回weekday中的星期几,星期一,返回1;星期二,返回2;以此类推。该函数需要一个datetime.date类型的参数。

import datetime
now=datetime.date.today()
now
datetime.date(2018, 10, 6) #获取今天日期

print(now)
2018-10-06

datetime.date.isoweekday(now) #查看今天是这周的第几天
6

print(datetime.date.isoweekday(now))
6

5)date.isocalendar函数:返回datetime.date时间对象中的year(年), week(周),weekday(工作日)函数需要一个datetime.date类型的参数。

import datetime
now=datetime.datetime.now()
now
datetime.datetime(2018, 10, 6, 16, 44, 3, 639554)

print(now)
2018-10-06 16:44:03.639554

s=datetime.date.isocalendar(now) #返回对象中的年、月、日
s
(2018, 40, 6)

print(s)
(2018, 40, 6)

6)date.strftime(fmt)函数:返回自定义的格式时间字符串。参数fmt是自定义的时间格式。

import datetime
now=datetime.datetime.now()
now
datetime.datetime(2018, 10, 6, 16, 47, 0, 502688)

print(now)
2018-10-06 16:47:00.502688

s=now.strftime(’%Y-%m-%d %H:%M:%S’) #自定义的时间格式
s
‘2018-10-06 16:47:00’

print(s)
2018-10-06 16:47:00

日期其他操作
1)日期加上一个时间间隔
dateNow = dateOld + timedelta 日期加上一个间隔,返回一个新的日期对象;timedelta表示时间间隔。

from datetime import *
today=date.today() #获取今天的日期
today
datetime.date(2018, 10, 6)

print(today)
2018-10-06

today+timedelta(days=10) #加上10天
datetime.date(2018, 10, 16)

print(today+timedelta(days=10))
2018-10-16

2)日期减去一个时间间隔
dateNow = dateOld - timedelta 日期减去一个时间间隔,返回一个新的日期对象。

from datetime import *
today=date.today() #获取今天日期
today
datetime.date(2018, 10, 6)

print(today)
2018-10-06

today-timedelta(days=10) #减去10天
datetime.date(2018, 9, 26)

print(today-timedelta(days=10))
2018-09-26

3)两个日期相减
timedelta = date1 - date2 返回两个日期间的间隔对象

from datetime import *
today=date.today() #获取今天日期
print(today)
2018-10-06

otherday=today+timedelta(days=10) #加上10天
print(otherday)
2018-10-16

delta=otherday-today #算两个时间间隔
delta
datetime.timedelta(10)

print(delta)
10 days, 0:00:00

future=today.replace(day=15) #替换形成一个新的日期
future
datetime.date(2018, 10, 15)

print(future)
2018-10-15

4)比较日期大小
date1 < date2 返回比较结果布尔值,真返回True,假返回False

from datetime import *
now=date.today()
now
datetime.date(2018, 10, 6)

print(now)
2018-10-06

other=now.replace(day=10)
print(other)
2018-10-10

print(other>now)
True

print(now>other)
False

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值