python3 字符串 | 时间 | 日期之间的相互转换

运行环境 : pyhton 3.6.0

 

在 python 中,日期类型 date 和日期时间类型 dateTime 是不能比较的。

(1)如果要比较,可以将 datetime 转换为 date,date 不能直接转换为 datetime

import datetime

now_time = datetime.datetime.now()
now_date = now_time.date()
print(now_time)
print(now_date)

# 输出
"""
2019-09-19 22:20:30.163409
2019-09-19
"""

(2)日期类型 date 转换为字符串 str

import datetime

now_date = datetime.datetime.now().date()
str_now_date = str(now_date)
print(now_date, type(now_date))
print(str_now_date, type(str_now_date))

# 输出
"""
2019-09-19 <class 'datetime.date'>
2019-09-19 <class 'str'>
"""

(3)字符串类型 str 转换为 dateTime 类型

import datetime

str_now_date = '2019-09-19 22:20:30'
now_date = datetime.datetime.strptime(str_now_date, '%Y-%m-%d %H:%M:%S')
print(now_date, type(now_date))

# 输出
"""
2019-09-19 22:20:30 <class 'datetime.datetime'>
"""

(4)datetime 类型转为 str 类型

import datetime

now_time = datetime.datetime.now()  # 2019-09-19 22:28:22.824015
now_date = datetime.datetime.strftime(now_time, '%Y-%m-%d')
print(now_date, type(now_date))

# 输出
"""
2019-09-19 <class 'str'>
"""

(5)字符串类型 str 转换为 date 类型

import datetime

str_now_time = '2019-09-19'
now_date = datetime.datetime.strptime(str_now_time, '%Y-%m-%d').date()
print(now_date, type(now_date))  # 2019-09-19 <class 'datetime.date'>

# 输出
"""
2019-09-19 <class 'datetime.date'>
"""

(6)另外 datetime 类型和 date 类型可以直接做 加 1 减 1 这种操作

import datetime

today = datetime.datetime.today().date()
yestoday = today + datetime.timedelta(days=-1)
tomorrow = today + datetime.timedelta(days=1)
print(today)  # 2019-09-19
print(yestoday)  # 2019-09-18
print(tomorrow)  # 2019-09-20

# 输出
"""
2019-09-19 <class 'datetime.date'>
"""