Работа с unix timestamp/time на python

Работа с unix timestamp/time на python

Совсем недавно, я начал свое изучение python. Мне потребовалось несколько дней для того чтобы начать писать на нем элементарные вещи. И мне бы хотелось сохранять полезную информацию в виде своих заметок и для питон.

Как преобразовать unix timestamp в datetime на Python?

Делается это очень просто:

#!/bin/env python3

import datetime
timestamp = 1339521878.04
value = datetime.datetime.fromtimestamp(timestamp)
print(value.strftime('%Y-%m-%d %H:%M:%S'))

Чтобы получить datetime времени (сейчас), можно выполнить:

#!/bin/env python3

import datetime,time
dt = datetime.datetime.now()
value = datetime.datetime.fromtimestamp(time.mktime(dt.timetuple()))
print(value.strftime('%Y-%m-%d %H:%M:%S'))

Вывод будет следующим:

2017-08-04 14:25:21

Как преобразовать datetime в timestamp на Python?

Делается это очень просто:

#!/bin/env python3

from datetime import datetime
import time

# time tuple in local time to timestamp
time_tuple = (2017, 11, 12, 13, 59, 27, 2, 317, 0)
timestamp = time.mktime(time_tuple)
print (repr(timestamp))

# time tuple in utc time to timestamp
time_tuple_utc = (2017, 11, 12, 13, 59, 27, 2, 317, 0)
timestamp_utc = calendar.timegm(time_tuple_utc)
print (repr(timestamp_utc))

Конвертация в строку:

#!/bin/env python3

from datetime import datetime
import time

# datetime object to string
dt_obj = datetime(2017, 11, 10, 17, 53, 59)
date_str = dt_obj.strftime("%Y-%m-%d %H:%M:%S")
print (date_str)

# time tuple to string
time_tuple = (2017, 11, 12, 13, 51, 18, 2, 317, 0)
date_str = time.strftime("%Y-%m-%d %H:%M:%S", time_tuple)
print (date_str)

Конвертация в datetime:

#!/bin/env python3
from datetime import datetime
import time

# time tuple to datetime object
time_tuple = (2017, 11, 12, 13, 51, 18, 2, 317, 0)
dt_obj = datetime(*time_tuple[0:6])
print (repr(dt_obj))

# date string to datetime object
date_str = "2017-11-10 17:53:59"
dt_obj = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print (repr(dt_obj))

# timestamp to datetime object in local time
timestamp = 1226527167.595983
dt_obj = datetime.fromtimestamp(timestamp)
print (repr(dt_obj))

# timestamp to datetime object in UTC
timestamp = 1226527167.595983
dt_obj = datetime.utcfromtimestamp(timestamp)
print (repr(dt_obj))

Получаем вывод:

datetime.datetime(2017, 11, 12, 13, 51, 18)
datetime.datetime(2017, 11, 10, 17, 53, 59)
datetime.datetime(2008, 11, 12, 23, 59, 27, 595983)
datetime.datetime(2008, 11, 12, 21, 59, 27, 595983)

Конвертация time tuples:

#!/bin/env python3

from datetime import datetime
import time

# datetime object to time tuple
dt_obj = datetime(2017, 11, 10, 17, 53, 59)
time_tuple = dt_obj.timetuple()
print (repr(time_tuple))

# string to time tuple
date_str = "2017-11-10 17:53:59"
time_tuple = time.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print (repr(time_tuple))

# timestamp to time tuple in UTC
timestamp = 1226527167.595983
time_tuple = time.gmtime(timestamp)
print (repr(time_tuple))

# timestamp to time tuple in local time
timestamp = 1226527167.595983
time_tuple = time.localtime(timestamp)
print (repr(time_tuple))

Получим вывод:

time.struct_time(tm_year=2017, tm_mon=11, tm_mday=10, tm_hour=17, tm_min=53, tm_sec=59, tm_wday=4, tm_yday=314, tm_isdst=-
1)
time.struct_time(tm_year=2017, tm_mon=11, tm_mday=10, tm_hour=17, tm_min=53, tm_sec=59, tm_wday=4, tm_yday=314, tm_isdst=-
1)
time.struct_time(tm_year=2008, tm_mon=11, tm_mday=12, tm_hour=21, tm_min=59, tm_sec=27, tm_wday=2, tm_yday=317, tm_isdst=0
)
time.struct_time(tm_year=2008, tm_mon=11, tm_mday=12, tm_hour=23, tm_min=59, tm_sec=27, tm_wday=2, tm_yday=317, tm_isdst=0
)

Вот и все.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.