当前日期时间

时间戳格式

获取当前时间,时间戳格式

格式:1578879320.382141

1
2
3
import time

print(time.time())

JSON格式

获取当前日期和时间,并格式化时间戳为本地的日期和时间

格式: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)

1
2
3
import time

print(time.localtime(time.time()))

yyyy-MM-dd

格式:2020-01-13

1
2
3
import datetime

print(datetime.datetime.now().strftime('%Y-%m-%d'))

yyyy-MM-dd hh:mm:ss

获取当前时间,yyyy-MM-dd hh:mm:ss 格式

格式:2020-01-13 09:39:20

1
2
3
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 当前时区的名称
%% %号本身

yyyy-MM-dd hh:mm:ss.ff

完整格式:yyyy-MM-dd hh:mm:ss.ffff

ffff:秒的小数精度

格式:2020-01-13 09:45:06.057097

1
2
3
import datetime

print(datetime.datetime.now())

指定日期时间

获取昨天的当前时间

1
2
3
4
5
6
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

获取昨天指定的时间

1
2
3
4
5
6
7
8
9
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)

获取前一周

获取前一周 (获取前7天周期,不包括今天)

格式:2020-01-06 00:00:00---2020-01-12 23:59:59

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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)]))

获取前一个月

获取前一个月的周期 (上个月的第一天至上个月的最后一天)

格式:2019-12-01 00:00:00 --- 2019-12-31 23:59:59

1
2
3
4
5
6
7
8
9
10
11
12
13
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)]))

日期格式转化

美式日期转化

格式:October 11, 2019 转 2019-10-11

1
2
3
4
5
6
7
8
9
10
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)

UTC格式转本地时间

格式:2019-10-10T21:03:10.000Z 转 2019-10-11 05:03:10

1
2
3
4
5
6
7
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)

字符串转datetime

格式:2019-01-12 09:52:40

1
2
3
4
5
import datetime

str = '2019-01-12 09:52:40'
time = datetime.datetime.strptime(str, '%Y-%m-%d %H:%M:%S')
print(time)

datetime转字符串

格式:2020-01-13 09:48:22

1
2
3
4
5
import datetime

# 当前日期和时间
now_datetime = datetime.datetime.now()
print(now_datetime.strftime('%Y-%m-%d %H:%M:%S'))