Как я могу создать временную метку Python с точностью до миллисекунды?

Если нам нужно ответить на вопрос: String является ссылочным типом и ведет себя как ссылка. Мы передаем параметр, содержащий ссылку, а не фактическую строку. Проблема заключается в функции:

public static void TestI(string test)
{
    test = "after passing";
}

Параметр test содержит ссылку на строку, но это копия. У нас есть две переменные, указывающие на строку. И поскольку любые операции со строками фактически создают новый объект, мы делаем нашу локальную копию для указания на новую строку. Но исходная переменная test не изменяется.

Предлагаемые решения по положению ref в объявлении функции и в вызове работают, потому что мы не будем передавать значение переменной test, но будем пропустите только ссылку на него. Таким образом, любые изменения внутри функции будут отражать исходную переменную.

Я хочу повторить в конце: String является ссылочным типом, но поскольку его неизменяемая строка test = "after passing"; фактически создает новый объект и выдает копию переменная test изменена, чтобы указать на новую строку.

23
задан Nick T 5 May 2012 в 04:32
поделиться

2 ответа

import time
time.time() * 1000

где 1000 - миллисекунды в секунду. Если все, что вы хотите, это сотые доли секунды с начала эпохи, умножьте на 100.

36
ответ дан nmichaels 5 May 2012 в 04:32
поделиться

В Python datetime.now() может производить значение с большей точностью, чем time.time():

from datetime import datetime, timezone, timedelta

now = datetime.now(timezone.utc)
epoch = datetime(1970, 1, 1, tzinfo=timezone.utc) # use POSIX epoch
posix_timestamp_micros = (now - epoch) // timedelta(microseconds=1)
posix_timestamp_millis = posix_timestamp_micros // 1000 # or `/ 1e3` for float

Теоретически, time.gmtime(0) (эпоха, используемая time.time()) может отличаться от 1970.

8
ответ дан jfs 5 May 2012 в 04:32
поделиться
Другие вопросы по тегам:

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