時間轉換

from datetime import datetime
from dateutil import parser
d1 = '2018/1/8 14:30'
date1 = datetime.strptime(d1, '%Y/%m/%d %H:%M')  #需要拼寫出格式
print(type(date1))
print(date1)
date_str = date1.strftime('%Y:%m-%d %X')  #注意這裏的格式^_^
print(date_str)
<class 'datetime.datetime'>
2018-01-08 14:30:00
2018:01-08 14:30:00
#使用parser快速搞定,不用在拼寫格式
d1 = '2018/1/8 14:30'  #必須是英文格式
d1 = '2018:1:8 14:30'   # 這種格式的也可以的,都是轉換成下面的格式
date1 = parser.parse(d1)
print(type(date1))
print(date1)
<class 'datetime.datetime'>
2018-08-04 14:30:00
# 中文的年月日的處理
d1 ='2018年2月20日 14:40'
d1.replace('年' ,'/').replace('月','/').replace('日' ,'')
'2018/2/20 14:40'
# 只有日期,自動追加時間
s = '1.6'
now = datetime.now()
print(type(now))
my_time = now.replace(day = 1, month = 6)  # 強行改變時間的設置
print(now, my_time)
my_time.strftime('%Y-%m-%d %X')
<class 'datetime.datetime'>
2018-08-04 10:39:23.553173 2018-06-01 10:39:23.553173

'2018-06-01 10:39:23'
# 封裝函數
from datetime import datetime
from dateutil import parser
def change_datetime(dt):
    '''轉換日期時間格式到 yyyy-mm-dd hh:mm:ss'''
    date1 = parser.parse(dt)
#     print(date1)
    date_str = date1.strftime('%Y-%m-%d %X')  #str 沒有屬性strftime
    print(date1, date_str)
    return date1, date_str
# print(change_datetime('2015/2/4/ 14:39'))
# dt , dt_str = change_datetime('2015/2/4 13:11')
dt_str = change_datetime('2015/2/4 13:11')
2015-02-04 13:11:00 2015-02-04 13:11:00
dt_str
(datetime.datetime(2015, 2, 4, 13, 11), '2015-02-04 13:11:00')
##############################################################
# print(change_datetime('2015/2/4/ 14:39'))
dt , dt_str = change_datetime('2015/2/4 13:11')
# dt_str = change_datetime('2015/2/4 13:11')
2015-02-04 13:11:00 2015-02-04 13:11:00
dt
datetime.datetime(2015, 2, 4, 13, 11)
dt_str
'2015-02-04 13:11:00'
def change_datetime_cn(dt):
    '''轉換中文年月日的時間'''
    date11 = dt.replace('年','/').replace('月','/').replace('日','')
    return change_datetime(date11)
change_datetime_cn('2018年8月4日')
2018-08-04 00:00:00 2018-08-04 00:00:00

(datetime.datetime(2018, 8, 4, 0, 0), '2018-08-04 00:00:00')
def change_datetime_cnn(dt):
    """轉換‘1.4’這種格式的日誌,並添加時間"""
    month, day = dt.split('.')  # 分別賦值給month , day
    now = datetime.now()
    my_time = now.replace(day = int(day), month = int(month))
    print(now, my_time)
    return now, my_time.strftime('%Y-%m-%d %X')
change_datetime_cnn('2.5')
2018-08-04 12:06:39.668178 2018-02-05 12:06:39.668178

(datetime.datetime(2018, 8, 4, 12, 6, 39, 668178), '2018-02-05 12:06:39')
# 抽象成類
class TimeMaster:
    def __init__(self, fmt = '%Y-%m-%d %X'):
        self._output_format = fmt  # 定義了轉換的格式

    def change_timedate_num(self, dt):
        """轉換‘1.5’這種格式的日期,並添加時間"""
        month, day = dt.split('.')
        now = datetime.now()
        my_time = now.replace(day = int(day), month = int(month))
        print(now, my_time)
        return now, my_time.strftime(self._output_format)  # 引用定義的日期格式

    def set_format(self, new_fmt):
        self._outptu_format = new_fmt  # 修改私有變量,修改傳入的時間格式
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章