datetime是Python处理日期和时间的标准库
获取当前时间
import datetime
day = datetime.datetime.now()
day2 = datetime.date.today()
print("当前年月日时分秒:", day)
print("只查看年月日:", day2)
执行结果:
当前年月日时分秒: 2018-09-19 21:18:57.132640
只查看年月日: 2018-09-19
只查看时分秒
import datetime
def CutHour(time=datetime.datetime.now()):
"""截取时分秒"""
new_time = str(time)
hour = new_time[11:19]
return "".join(hour)
print(CutHour())
执行结果:
21:33:25
timestamp转换为datetime
import datetime
t = 1537000000.0
print(datetime.datetime.fromtimestamp(t))
执行结果:
2018-09-15 16:26:40
str转换为datetime
很多时候,用户输入的日期和时间是字符串,要处理日期和时间,首先必须把str转换为datetime。转换方法是通过datetime.strptime()实现,需要一个日期和时间的格式化字符串:
import datetime
cday = datetime.datetime.strptime('2018-9-19 18:19:59', '%Y-%m-%d %H:%M:%S')
print(cday)
执行结果:
2018-09-19 18:19:59
datetime转换为str
import datetime
now = datetime.datetime.now()
print(now.strftime('%a, %b %d %H:%M'))
执行结果:
Wed, Sep 19 21:29
Python time & datetime & string 相互转换
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Datetime : 2017/11/23 下午12:37
# @Author : Alfred Xue
# @E-Mail : Alfred.Hsueh@gmail.com
# @GitHub : https://github.com/Alfred-Xue
# @Blog : http://www.cnblogs.com/alfred0311/
import datetime
import time
# 日期时间字符串
st = "2017-11-23 16:10:10"
# 当前日期时间
dt = datetime.datetime.now()
# 当前时间戳
sp = time.time()
# 1.把datetime转成字符串
def datetime_toString(dt):
print("1.把datetime转成字符串: ", dt.strftime("%Y-%m-%d %H:%M:%S"))
# 2.把字符串转成datetime
def string_toDatetime(st):
print("2.把字符串转成datetime: ", datetime.datetime.strptime(st, "%Y-%m-%d %H:%M:%S"))
# 3.把字符串转成时间戳形式
def string_toTimestamp(st):
print("3.把字符串转成时间戳形式:", time.mktime(time.strptime(st, "%Y-%m-%d %H:%M:%S")))
# 4.把时间戳转成字符串形式
def timestamp_toString(sp):
print("4.把时间戳转成字符串形式: ", time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(sp)))
# 5.把datetime类型转外时间戳形式
def datetime_toTimestamp(dt):
print("5.把datetime类型转外时间戳形式:", time.mktime(dt.timetuple()))
# 1.把datetime转成字符串
datetime_toString(dt)
# 2.把字符串转成datetime
string_toDatetime(st)
# 3.把字符串转成时间戳形式
string_toTimestamp(st)
# 4.把时间戳转成字符串形式
timestamp_toString(sp)
# 5.把datetime类型转外时间戳形式
datetime_toTimestamp(dt)
输出结果
1.把datetime转成字符串: 2017-11-23 17:05:18 2.把字符串转成datetime: 2017-11-23 16:10:10 3.把字符串转成时间戳形式: 1511424610.0 4.把时间戳转成字符串形式: 2017-11-23 17:05:18 5.把datetime类型转外时间戳形式: 1511427918.0