目录
一、获取时间、日期
1. 获取当前时间,时间戳格式
2.获取当前时间,yyyy-MM-dd hh:mm:ss 格式
3.获取当前日期和时间,并格式化时间戳为本地的日期和时间
4.获取当前日期和时间
5.获取当前日期和时间,datetime转字符串
6.获取当前日期
7.获取昨天的当前时间
8.获取昨天指定的时间
9.获取前一周 (获取前7天周期,不包括今天)
10.获取前一个月的周期 (上个月的第一天至上个月的最后一天)
二、日期格式转化
1. 美式日期转化
2. UTC格式转本地时间
3.字符串转datetime
4.datetime转字符串
三、字符串截取
1.根据“下标”截取:
2.根据“所含字符”截取:
四、字符串格式化函数 str.format()
一、获取时间、日期
1. 获取当前时间,时间戳格式
格式:1578879320.382141
import time
print(time.time())
2.获取当前时间,yyyy-MM-dd hh:mm:ss 格式
格式:2020-01-13 09:39:20
import time
print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))
strftime(format[, tuple]) -> string 将指定的struct_time(默认为当前时间),
根据指定的格式化字符串输出 python中时间日期格式化符号:
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身
3.获取当前日期和时间,并格式化时间戳为本地的日期和时间
格式:time.struct_time(tm_year=2020, tm_mon=1, tm_mday=13, tm_hour=9, tm_min=36, tm_sec=44, tm_wday=0, tm_yday=13, tm_isdst=0)
import time
print(time.localtime(time.time()))
4.获取当前日期和时间
格式:2020-01-13 09:45:06.057097
import datetime
print(datetime.datetime.now())
5.获取当前日期和时间,datetime转字符串
格式:2020-01-13 09:48:22
import datetime
# 当前日期和时间
now_datetime = datetime.datetime.now()
print(now_datetime.strftime('%Y-%m-%d %H:%M:%S'))
6.获取当前日期
格式:2020-01-13
import datetime
print(datetime.datetime.now().strftime('%Y-%m-%d'))
7.获取昨天的当前时间
import datetime
# 当前时间 2020-01-13 10:14:06.538507
# 1个单位天数(1 day, 0:00:00)
one_day = datetime.timedelta(days=1)
# 昨天的当前时间(2020-01-12 10:14:06.538507)
y_now = datetime.datetime.now() - one_day
8.获取昨天指定的时间
import datetime
# 当前时间 2020-01-13 10:14:06.538507
# 1个单位天数(1 day, 0:00:00)
one_day = datetime.timedelta(days=1)
# 昨天的当前时间
y_now = datetime.datetime.now() - one_day
# 昨天的0点0分0秒(2020-01-12 00:00:00)
y_date = datetime.datetime(y_now.year, y_now.month, y_now.day, 0, 0, 0)
9.获取前一周 (获取前7天周期,不包括今天)
格式:2020-01-06 00:00:00---2020-01-12 23:59:59
import datetime
# 当前日期 2020-01-13 10:36:27.432142
# 1个单位天数(1 day, 0:00:00)
one_day = datetime.timedelta(days=d.isoweekday())
# 昨天的当前时间(2020-01-12 10:36:27.432142)
y_now = d - one_day
# 6个单位天数(6 days, 0:00:00)
six_day = datetime.timedelta(days=6)
# 6天前的当前时间(2020-01-06 10:36:27.432142)
six_now = y_now - six_day
# 6天前的0点0分0秒(2020-01-06 00:00:00)
date_from = datetime.datetime(six_now.year, six_now.month, six_now.day, 0, 0, 0)
# 昨天的23点59分59秒(2020-01-12 23:59:59)
date_to = datetime.datetime(y_now.year, y_now.month, y_now.day, 23, 59, 59)
# 前7天的周期,不包括今天
print('---'.join([str(date_from), str(date_to)]))
10.获取前一个月的周期 (上个月的第一天至上个月的最后一天)
格式:2019-12-01 00:00:00 --- 2019-12-31 23:59:59
import datetime
# 当前日期 2020-01-13 10:53:28.794019
# 获取今天是当前月份的第几天(13 days, 0:00:00)
day_count = datetime.timedelta(days=d.day)
# 获取前一个月最后一天的日期和时间(2019-12-31 10:53:28.794019)
l_month = d - day_count
# 获取前一个月最后一天的日期和时间(2019-12-01 00:00:00)
date_from = datetime.datetime(l_month.year, l_month.month, 1, 0, 0, 0)
# 获取前一个月第一天的日期和时间(2019-12-31 23:59:59)
date_to = datetime.datetime(l_month.year, l_month.month, l_month.day, 23, 59, 59)
# # 前一个月的周期 2019-12-01 00:00:00 --- 2019-12-31 23:59:59
print(' --- '.join([str(date_from), str(date_to)]))
二、日期格式转化
1. 美式日期转化
格式:October 11, 2019 转 2019-10-11
import time
def trans_format(self, datetime):
time_struct = time.strptime(datetime, '%B %d, %Y')
times = time.strftime('%Y-%m-%d', time_struct)
return times
# 调用转化方法
datetime = self.trans_format(times)
print(datetime)
2. UTC格式转本地时间
格式:2019-10-10T21:03:10.000Z 转 2019-10-11 05:03:10
import datetime
utc = "2019-10-10T21:03:10.000Z"
UTC_FORMAT = "%Y-%m-%dT%H:%M:%S.%fZ"
utcTime = datetime.datetime.strptime(utc, UTC_FORMAT)
localtime = utcTime + datetime.timedelta(hours=8)
print(localtime)
3.字符串转datetime
格式:2019-01-12 09:52:40
import datetime
str = '2019-01-12 09:52:40'
time = datetime.datetime.strptime(str, '%Y-%m-%d %H:%M:%S')
print(time)
4.datetime转字符串
格式:2020-01-13 09:48:22
import datetime
# 当前日期和时间
now_datetime = datetime.datetime.now()
print(now_datetime.strftime('%Y-%m-%d %H:%M:%S'))
三、字符串截取
1.根据“下标”截取:
str = "床前明月光,疑是地上霜"
# 1.截取第1个到第4个的字符
print(str[0:4])
# 2.截取字符串的全部字符
print(str[:])
# 3.截取从第7个字符到最后1个字符之间的字符,不包括第1个字符,包括最后一个字符
print(str[6:])
# 4.截取从第1个字符到倒数第3个字符之间的字符,包括第1个字符,不包括最后一个字符
print(str[:-3])
# 5.截取第3个字符
print(str[2])
# 6.截取倒数第1个字符
print(str[-1])
# 7.与原字符串顺序相反
print(str[::-1])
# 8.截取倒数第3个与倒数第1个之间的字符,包括倒数第3个字符,不包括最后一个字符
print(str[-3:-1])
# 9.截取倒数第3个到最后1个字符,包括倒数第3个字符,包括最后一个字符
print(str[-3:])
# 10.切片截取,截取区间(第1个字符到第8个字符),每隔2个字符截取一次
print(str[0:8:2])
打印如下:
1:床前明月
2:床前明月光,疑是地上霜
3:疑是地上霜
4:床前明月光,疑是
5:明
6:霜
7:霜上地是疑,光月明前床
8:地上
9:地上霜
10:床明光疑
切片截取
str[ begin : end : step ]
str: 字符串 / 列表
begin: 切片的起始位置。默认为 0
end: 切片的截止位置。默认为 -1,且包含 -1
step: 切片的间隔。step不能为0,默认为1(大于0 则从左往右切,小于0 从右往左切)
2.根据“所含字符”截取:
str = "['床前明月光,疑是地上霜']"
# 1.去掉前面的 ['
print(str.split("['")[-1])
# 2.去掉后面的 ']
print(str.split("']")[0])
# 3.截取 [' '] 里的内容
print(str.split("['")[-1].split("']")[0])
打印如下:
1:床前明月光,疑是地上霜']
2:['床前明月光,疑是地上霜
3:床前明月光,疑是地上霜
四、字符串格式化函数 str.format()
# 直接赋值
print("姓名:{},地址:{}".format("王小二", "山东青岛"))
# 直接赋值
print("姓名:{name}, 地址 {adress}".format(name="王小二", adress="山东青岛"))
# 通过字典设置参数
site = {"name": "王小二", "adress": "山东青岛"}
print("姓名:{name}, 地址:{adress}".format(**site))
# 通过列表索引设置参数,"0" 是必须的
arr = ['王小二', '山东青岛']
print("姓名:{0[0]}, 地址:{0[1]}".format(arr))
# 数字格式化
~ ~ ~ ~