это - перевести время в секунды python




Как получить текущее время в Python (20)

Каков модуль / метод, используемый для получения текущего времени?


Как получить текущее время в Python?

Модуль time

Модуль time предоставляет функции, которые сообщают нам время в «секундах с эпохи», а также другие утилиты.

import time

Время эпохи Unix

Это формат, в который вы должны получить отметки времени для сохранения в базах данных. Это простое число с плавающей запятой, которое можно преобразовать в целое число. Это также полезно для арифметики в секундах, так как она представляет количество секунд с 1 января 1970 года 00:00:00, и это свет памяти относительно других представлений времени, которые мы будем смотреть дальше:

>>> time.time()
1424233311.771502

Эта временная метка не учитывает прыжковые секунды, поэтому она не является линейной - секунды прыжка игнорируются. Поэтому, хотя он не эквивалентен международному стандарту UTC, он близок и, следовательно, достаточно хорош для большинства случаев учета.

Однако это не идеально подходит для планирования людей. Если у вас есть будущее событие, которое вы хотите провести в определенный момент времени, вы захотите сохранить это время со строкой, которая может быть проанализирована в объект datetime или сериализованный объект datetime (они будут описаны ниже).

time.ctime

Вы также можете представить текущее время в соответствии с предпочтениями вашей операционной системы (это означает, что он может измениться при изменении настроек вашей системы, поэтому не полагайтесь на то, чтобы это было стандартным для всех систем, как я ожидал других) , Это, как правило, удобство для пользователя, но обычно не приводит к строкам, которые можно сортировать в хронологическом порядке:

>>> time.ctime()
'Tue Feb 17 23:21:56 2015'

Вы можете убрать временные метки в человекообразную форму с помощью ctime :

>>> time.ctime(1424233311.771502)
'Tue Feb 17 23:21:51 2015'

Это преобразование также не подходит для ведения записей (за исключением текста, который будет разбираться только людьми), и с улучшенным распознаванием оптического признака и искусственным интеллектом, я думаю, что число этих случаев уменьшится).

модуль datetime

Модуль datetime также весьма полезен здесь:

>>> import datetime

datetime.datetime.now

datetime.now - метод класса, который возвращает текущее время. Он использует time.localtime без информации о часовом поясе (если не указано, в противном случае см. Информацию о часовом поясе ниже). Он имеет представление (которое позволит вам воссоздать эквивалентный объект), эхом отдаваться в оболочке, но при печати (или принуждении к str ) он находится в формате для чтения (и почти ISO), а лексикографическая сортировка эквивалентна хронологический вид:

>>> datetime.datetime.now()
datetime.datetime(2015, 2, 17, 23, 43, 49, 94252)
>>> print(datetime.datetime.now())
2015-02-17 23:43:51.782461

datetime's utcnow

Вы можете получить объект datetime в UTC, глобальном стандарте, следующим образом:

>>> datetime.datetime.utcnow()
datetime.datetime(2015, 2, 18, 4, 53, 28, 394163)
>>> print(datetime.datetime.utcnow())
2015-02-18 04:53:31.783988

UTC - это стандарт времени, который почти эквивалентен часовому поясу GMT. (Хотя GMT и UTC не изменяются для летнего времени, их пользователи могут переключаться на другие временные интервалы, например, «Летнее время Великобритании» в течение лета).

datetime timezone

Однако ни один из объектов datetime, которые мы создали до сих пор, может быть легко преобразован в различные временные интервалы. Мы можем решить эту проблему с помощью модуля pytz :

>>> import pytz
>>> then = datetime.datetime.now(pytz.utc)
>>> then
datetime.datetime(2015, 2, 18, 4, 55, 58, 753949, tzinfo=<UTC>)

Эквивалентно, что в Python 3 у нас есть класс часовой timezone прикрепленным экземпляром времени utc, который также делает информацию о часовом поясе объекта (но для преобразования в другой часовой пояс без удобного модуля pytz остается в качестве упражнения для читателя):

>>> datetime.datetime.now(datetime.timezone.utc)
datetime.datetime(2015, 2, 18, 22, 31, 56, 564191, tzinfo=datetime.timezone.utc)

И мы видим, что мы можем легко преобразовать временные интервалы из исходного объекта utc.

>>> print(then)
2015-02-18 04:55:58.753949+00:00
>>> print(then.astimezone(pytz.timezone('US/Eastern')))
2015-02-17 23:55:58.753949-05:00

Вы также можете сделать наивный объект datetime осведомленным с помощью метода localize часового пояса pytz или заменить атрибут tzinfo (с replace , это делается вслепую), но это более последние курорты, чем лучшие практики:

>>> pytz.utc.localize(datetime.datetime.utcnow())
datetime.datetime(2015, 2, 18, 6, 6, 29, 32285, tzinfo=<UTC>)
>>> datetime.datetime.utcnow().replace(tzinfo=pytz.utc)
datetime.datetime(2015, 2, 18, 6, 9, 30, 728550, tzinfo=<UTC>)

Модуль pytz позволяет нам предоставлять информацию о часовом поясе и определять время до сотен часовых поясов, доступных в модуле pytz .

Можно было бы якобы сериализовать этот объект для времени UTC и хранить его в базе данных, но для этого потребуется гораздо больше памяти и быть более склонным к ошибке, чем просто сохранение времени Unix Epoch, которое я продемонстрировал первым.

Другие способы просмотра времени гораздо более подвержены ошибкам, особенно при работе с данными, которые могут поступать из разных часовых поясов. Вы хотите, чтобы не было никакой путаницы в отношении того, в какой временной зоне предназначалась строка или сериализованный объект datetime.

Если вы показываете время с Python для пользователя, ctime работает красиво, а не в таблице (обычно не сортируется), но, возможно, в часах. Тем не менее, я лично рекомендую, когда занимаюсь временем на Python, либо используя время Unix, либо объект времени dTC для времени часовой пояс.


Все хорошие предложения, но мне проще всего использовать ctime() :

In [2]: from time import ctime
In [3]: ctime()
Out[3]: 'Thu Oct 31 11:40:53 2013'

Это дает хорошо отформатированное строковое представление текущего локального времени.


Вы можете использовать модуль time .

import time
print time.strftime("%d/%m/%Y")

>>> 06/02/2015

Использование капитала Y дает полный год, и использование y даст 06/02/15 .

Вы также можете использовать для более длительного времени.

time.strftime("%a, %d %b %Y %H:%M:%S")
>>> 'Fri, 06 Feb 2015 17:45:09'

Вы можете использовать эту функцию, чтобы получить время (к сожалению, он не говорит AM или PM):

def gettime():
        from datetime import datetime
        return ((str(datetime.now())).split(' ')[1]).split('.')[0]

Чтобы получить количество часов, минут, секунд и миллисекунд, чтобы слить их позже, вы можете использовать следующие функции:

Час:

def gethour():
        from datetime import datetime
        return return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[0]

Минуты:

def getminute():
        from datetime import datetime
        return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[1]

Во- вторых:

def getsecond():
        from datetime import datetime
        return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[2]

миллисекунды:

def getmillisecond():
        from datetime import datetime
        return return (str(datetime.now())).split('.')[1]

Если вам нужна текущая временная метка в мс (например, для измерения времени выполнения), вы также можете использовать модуль «timeit»:

import timeit
start_time = timeit.default_timer()
do_stuff_you_want_to_measure()
end_time = timeit.default_timer()
print("Elapsed time: {}".format(end_time - start_time))

Если вам нужно текущее время как объект time :

>>> import datetime
>>> now = datetime.datetime.now()
>>> datetime.time(now.hour, now.minute, now.second)
datetime.time(11, 23, 44)

Использование:

>>> import datetime
>>> datetime.datetime.now()
datetime(2009, 1, 6, 15, 8, 24, 78915)

>>> print(datetime.datetime.now())
2018-07-29 09:17:13.812189

И только время:

>>> datetime.datetime.time(datetime.datetime.now())
datetime.time(15, 8, 24, 78915)

>>> print(datetime.datetime.time(datetime.datetime.now()))
09:17:51.914526

То же, но немного более компактное:

>>> datetime.datetime.now().time()

Дополнительную информацию см. В документации .

Чтобы сохранить ввод текста, вы можете импортировать объект datetime из модуля datetime :

>>> from datetime import datetime

Затем удалите ведущее datetime. от всего вышеперечисленного.


Используя Pandas чтобы получить текущее время, вид над убийством проблемы:

import pandas as pd
print (pd.datetime.now())
print (pd.datetime.now().date())
print (pd.datetime.now().year)
print (pd.datetime.now().month)
print (pd.datetime.now().day)
print (pd.datetime.now().hour)
print (pd.datetime.now().minute)
print (pd.datetime.now().second)
print (pd.datetime.now().microsecond)

Выход:

2017-09-22 12:44:56.092642
2017-09-22
2017
9
22
12
44
56
92693

По умолчанию функция now() возвращает выход в YYYY-MM-DD HH:MM:SS:MS . Используйте приведенный ниже пример скрипта, чтобы получить текущую дату и время в сценарии Python и распечатать результаты на экране. Создайте файл getDateTime1.py с содержимым ниже.

import datetime

currentDT = datetime.datetime.now()
print (str(currentDT))

Результат выглядит следующим образом:

2018-03-01 17:03:46.759624

Попробуйте модуль стрелки от http://crsmithdev.com/arrow/ :

import arrow
arrow.now()

Или версия UTC:

arrow.utcnow()

Чтобы изменить свой вывод, добавьте .format ():

arrow.utcnow().format('YYYY-MM-DD HH:mm:ss ZZ')

Для конкретного часового пояса:

arrow.now('US/Pacific')

Час назад:

arrow.utcnow().replace(hours=-1)

Или если вы хотите сущность.

arrow.get('2013-05-11T21:23:58.970460+00:00').humanize()
>>> '2 years ago'

Простой и легкий:

Используя модуль datetime ,

import datetime
print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))

Выход:

2017-10-17 23:48:55

ИЛИ ЖЕ

Используя time ,

import time
print(time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime()))

Выход:

2017-10-17 18:22:26

Самый быстрый способ

>>> import time
>>> time.strftime("%Y%m%d")
'20130924'

Сначала импортируйте модуль datetime из даты и времени

from datetime import datetime

Затем напечатайте текущее время как 'yyyy-mm-dd hh: mm: ss'

print(str(datetime.now())

Чтобы получить только время в форме «hh: mm: ss», где ss означает полное количество секунд плюс доля секунд, прошедших, просто сделайте;

print(str(datetime.now()[11:])

Преобразование datetime.now () в строку дает ответ, который находится в формате, который похож на обычные DATES AND TIMES, к которым мы привыкли.


Это то, с чем я столкнулся:

>>>from time import strftime
>>>strftime("%m/%d/%Y %H:%M")
01/09/2015 13:11

Кроме того, эта таблица является необходимой ссылкой для выбора соответствующих кодов формата для получения даты, отформатированной так, как вы этого хотите (из документации Python «datetime» here ).


Я хочу получить время с миллисекундами. Простой способ получить их:

import time, datetime

print(datetime.datetime.now().time())                         # 11:20:08.272239

# Or in a more complicated way
print(datetime.datetime.now().time().isoformat())             # 11:20:08.272239
print(datetime.datetime.now().time().strftime('%H:%M:%S.%f')) # 11:20:08.272239

# But do not use this:
print(time.strftime("%H:%M:%S.%f", time.localtime()), str)    # 11:20:08.%f

Но я хочу только миллисекунды , верно? Самый короткий способ получить их:

import time

time.strftime("%H:%M:%S", time.localtime()) + '.%d' % (time.time() % 1 * 1000)
# 11:34:23.751

Добавьте или удалите нули из последнего умножения, чтобы отрегулировать число десятичных точек, или просто:

def get_time_str(decimal_points=3):
    return time.strftime("%H:%M:%S", time.localtime()) + '.%d' % (time.time() % 1 * 10**decimal_points)

.isoformat() находится в документации, но еще не здесь (это очень похоже на ответ @Ray Vega):

>>> import datetime
>>> datetime.datetime.now().isoformat()
'2013-06-24T20:35:55.982000'

>>> from datetime import datetime
>>> datetime.now().strftime('%Y-%m-%d %H:%M:%S')

В этом примере результат будет таким: '2013-09-18 11:16:32'

Вот список strftime .


>>> from time import gmtime, strftime
>>> strftime("%a, %d %b %Y %X +0000", gmtime())
'Tue, 06 Jan 2009 04:54:56 +0000'

Это выводит текущий GMT в указанном формате. Существует также метод localtime ().

На этой page есть более подробная информация.


from time import ctime

// Day {Mon,Tue,..}
print ctime().split()[0]
// Month {Jan, Feb,..}
print ctime().split()[1]
// Date {1,2,..}
print ctime().split()[2]
// HH:MM:SS
print ctime().split()[3]
// Year {2018,..}
print ctime().split()[4]

Когда вы вызываете ctime (), он преобразует секунды в строку в формате «День Месяц Дата HH: MM: SS Year» (например: «Ср. 17 января 16:53:22 2018»), затем вы вызываете метод split (), который выведет список из вашей строки ['Wed', 'Jan', '17', '16:56:45', '2018'] (деминерация по умолчанию - это пробел).

Кронштейны используются для выбора желаемого аргумента в списке.

Нужно называть только одну строку кода. Не следует называть их так, как я, это просто пример, потому что в некоторых случаях вы получите разные значения, редкие, но не невозможные случаи.


import datetime
date_time = datetime.datetime.now()

date = date_time.date()  # Gives the date
time = date_time.time()  # Gives the time

print date.year, date.month, date.day
print time.hour, time.minute, time.second, time.microsecond

Делать dir(date) или любые переменные, включая пакет. Вы можете получить все атрибуты и методы, связанные с переменной.





time