Эпоха время `date +% s` эквивалент в python [дубликат]

Вы можете просто передать его в переменной PYSPARK_SUBMIT_ARGS. Например:

export PACKAGES="com.databricks:spark-csv_2.11:1.3.0"
export PYSPARK_SUBMIT_ARGS="--packages ${PACKAGES} pyspark-shell"

Эти свойства также могут быть установлены динамически в вашем коде до того, как SparkContext / SparkSession и соответствующая JVM были запущены:

packages = "com.databricks:spark-csv_2.11:1.3.0"

os.environ["PYSPARK_SUBMIT_ARGS"] = (
    "--packages {0} pyspark-shell".format(packages)
)
389
задан Ciro Santilli 新疆改造中心 六四事件 法轮功 5 December 2015 в 16:59
поделиться

6 ответов

Функция time.time() возвращает количество секунд, начиная с эпохи, в секундах. Обратите внимание, что «эпоха» определяется как начало 1 января 1970 года в UTC. Таким образом, эпоха определяется в терминах UTC и устанавливает глобальный момент времени. Независимо от того, где вы находитесь «секунды прошлой эпохи» (time.time ()) возвращает одно и то же значение в тот же момент.

Вот несколько примеров, которые я запускал на своем компьютере, преобразовывая его в строку как [. g2]

Python 2.7.3 (default, Apr 24 2012, 00:00:54) 
[GCC 4.7.0 20120414 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import time
>>> ts = time.time()
>>> print ts
1355563265.81
>>> import datetime
>>> st = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S')
>>> print st
2012-12-15 01:21:05
>>>

Переменная ts - это время, возвращаемое в секундах. Затем я преобразовал его в строку, используя библиотеку datetime, создав для нее строку, которая читается человеком.

562
ответ дан squiguy 25 August 2018 в 05:08
поделиться

Ответ не может быть ни тем, ни другим.

  • ни: time.time() возвращает примерно количество секунд, прошедших с момента Эпохи. Результат не зависит от часового пояса, поэтому он не является ни UTC, ни местным временем. Здесь исправление POSIX для «Секунды с эпохи» .
  • оба: time.time() не требуют синхронизации синхронизации вашей системы, поэтому она отражает ее значение (хотя в ней ничего нет с местным часовым поясом). Различные компьютеры могут получать разные результаты одновременно. С другой стороны, если время вашего компьютера равно , тогда легко получить время UTC из метки времени (если мы игнорируем секунды скачка):
    from datetime import datetime
    
    utc_dt = datetime.utcfromtimestamp(timestamp)
    

О том, как получить временные метки от времени UTC в различных версиях Python, см. . Как я могу получить дату, преобразованную в секунды с эпохи в соответствии с UTC?

22
ответ дан Community 25 August 2018 в 05:08
поделиться

На основании ответа от #squiguy, чтобы получить истинную временную метку, я бы напечатал ее из float.

>>> import time
>>> ts = int(time.time())
>>> print(ts)
1389177318

По крайней мере, это концепция.

107
ответ дан famousgarkin 25 August 2018 в 05:08
поделиться

В конкретный часовой пояс нет такой вещи, как «эпоха». Эпоха четко определена как определенный момент времени, поэтому, если вы измените часовой пояс, время тоже изменится. В частности, на этот раз Jan 1 1970 00:00:00 UTC. Таким образом, time.time() возвращает количество секунд с эпохи.

1
ответ дан HyperNeutrino 25 August 2018 в 05:08
поделиться

В конце концов я решил:

>>> import time
>>> time.mktime(time.gmtime())
1509467455.0
3
ответ дан Natim 25 August 2018 в 05:08
поделиться

Это текстовая форма метки времени, которая может использоваться в ваших текстовых файлах. (Название вопроса в прошлом было иным, поэтому введение в этот ответ было изменено, чтобы уточнить, как его можно интерпретировать как время. [Обновлено 2016-01-14])

Вы можете получить метка времени как строка, использующая .now() или .utcnow() в datetime.datetime:

>>> import datetime
>>> print datetime.datetime.utcnow()
2012-12-15 10:14:51.898000

now отличается от utcnow, как ожидалось, - в противном случае они работают одинаково:

>>> print datetime.datetime.now()
2012-12-15 11:15:09.205000

Вы можете явно отобразить метку времени в строке:

>>> str(datetime.datetime.now())
'2012-12-15 11:15:24.984000'

Или вы можете быть еще более явным, чтобы отформатировать временную метку так, как вам нравится:

>>> datetime.datetime.now().strftime("%A, %d. %B %Y %I:%M%p")
'Saturday, 15. December 2012 11:19AM'

Если вам нужен формат ISO, используйте метод .isoformat() объекта:

>>> datetime.datetime.now().isoformat()
'2013-11-18T08:18:31.809000'

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

>>> ts = datetime.datetime.now()
>>> tf = datetime.datetime.now()
>>> te = tf - ts
>>> print ts
2015-04-21 12:02:19.209915
>>> print tf
2015-04-21 12:02:30.449895
>>> print te
0:00:11.239980
221
ответ дан pepr 25 August 2018 в 05:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: