datetime выполнения - Как получить текущее время в Python




перевести секунды (25)

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


Answers

Вы можете использовать эту функцию, чтобы получить время (к сожалению, он не говорит 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))

Как получить текущее время в 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 для времени часовой пояс.


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

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)

Если вы используете NumPy уже, то напрямую вы можете использовать функцию numpy.datetime64 ().

import numpy as np
str(np.datetime64('now'))

Только для даты:

str(np.datetime64('today'))

Или, если вы уже используете Pandas, вы можете использовать функцию pandas.to_datetime ():

import pandas as pd
str(pd.to_datetime('now'))

Или же:

str(pd.to_datetime('today'))

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

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

>>> import datetime, time
>>> time = strftime("%H:%M:%S:%MS", time.localtime())
>>> print time
'00:20:58:20S'

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

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

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


Вы можете использовать модуль 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'

Попробуйте модуль стрелки от 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'

По умолчанию функция 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

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

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

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

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

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


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

Например, ответ на исходный вопрос:

>>> import pendulum
>>> print(pendulum.now())
2018-08-14T05:29:28.315802+10:00
>>> print(pendulum.utcnow())
2018-08-13T19:29:35.051023+00:00

Существует множество стандартов, требующих решения, в том числе нескольких RFC и ISO, для беспокойства. Когда-нибудь их путают; не волнуйтесь, немного взгляните на dir(pendulum.constants) Там есть немного больше, чем RFC и ISO-форматы.

Когда мы говорим местные, хотя что мы имеем в виду? Ну, я имею в виду:

>>> print(pendulum.now().timezone_name)
Australia/Melbourne
>>>

Предположительно большинство остальных из вас означают где-то еще.

И на это идет. Короче говоря: Pendulum пытается сделать для даты и времени, какие запросы сделали для HTTP. Это заслуживает внимания, особенно для его простоты использования и обширной документации.


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

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

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


datetime.now() возвращает текущее время как наивный объект datetime, который представляет время в локальном часовом поясе. Это значение может быть неоднозначным, например, во время перехода на летнее время («отступить»). Чтобы избежать двусмысленности, следует использовать часовой пояс UTC:

from datetime import datetime

utc_time = datetime.utcnow()
print(utc_time) # -> 2014-12-22 22:48:59.916417

Или объект, учитывающий часовой пояс, который связан с соответствующей информацией о часовом поясе (Python 3.2+):

from datetime import datetime, timezone

now = datetime.now(timezone.utc).astimezone()
print(now) # -> 2014-12-23 01:49:25.837541+03:00

Используя 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

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

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

Вот список strftime .


Делать

from time import time

t = time()
  • t - число с плавающей точкой, хорошее для измерения временного интервала.

Существует некоторая разница для платформ Unix и Windows.


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

Используя модуль 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

Сначала импортируйте модуль 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, к которым мы привыкли.


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

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

Вы можете использовать time.strftime() :

>>> from time import gmtime, strftime
>>> strftime("%Y-%m-%d %H:%M:%S", gmtime())
'2009-01-05 22:14:39'

Почему бы не спросить военно-морскую обсерваторию США , официальный хронометрист ВМС США?

import requests
from lxml import html

page = requests.get('http://tycho.usno.navy.mil/cgi-bin/timer.pl')
tree = html.fromstring(page.content)
print(tree.xpath('//html//body//h3//pre/text()')[1])

Если вы живете в области DC (например, я), латентность может быть не слишком плоха ...


Time time = new Time();
time.setToNow();
System.out.println("time: " + time.hour+":"+time.minute);

Это даст вам, например, 12:32.

Не забудьте импортировать android.text.format.Time;







python datetime time