目录

一、获取时间、日期

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, 20192019-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))

# 数字格式化
    ~ ~ ~ ~