C # UTC время в миллисекундах - PullRequest
0 голосов
/ 05 июня 2018

В C # я хотел бы получить время UTC (+00: 00) в виде миллисекунд.Так что я могу использовать это в Javascript со смещением (как показано ниже).Я пробовал несколько вещей, но я не достиг этого.

new Date(1528204115692 - (new Date().getTimezoneOffset() * 60000)).toString()

Приведенный ниже код дает мне миллисекунды в соответствии с моим часовым поясом.

((DateTimeOffset)DateTime.UtcNow).ToUnixTimeMilliseconds()

Я хочу сохранить миллисекунду в формате UTC, чтобы отображать дату и время в соответствии с региональной зоной браузера пользователя.

Например: в зоне +03: 00 сейчас время 06.05.2018 16: 12: 20.568

Я хочу сохранить время в зоне UTC в миллисекундах.(время эпохи 00:00)

Можете ли вы помочь?

Спасибо

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

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

var date = new Date(1528204115692);

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

0 голосов
/ 05 июня 2018

Ваш код C # был верным.

С mozilla :

новая дата (значение);

значение

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

Так что вам нужно только:

var date = new Date(1528204115692);

Где 1528204115692 - это значение, которое вы получаете из своего кода C #.

Даты Javascript внутренне указаны в миллисекундах (это просто число) и "начало »01 января 1970 г. 00.00 (то есть« время »0).

Итак:

public static readonly DateTime Date01Jan1970 = new DateTime(1970, 1, 1);

public static long MillisecondsFrom01Jan1970(DateTime dt)
{
    return (dt.Ticks - Date01Jan1970.Ticks) / TimeSpan.TicksPerMillisecond;
}

Используйте это как:

long ms = MillisecondsFrom01Jan1970(DateTime.UtcNow);

Это вернетколичество мс, прошедших между DateTime.UtcNow («сейчас» в Utc времени) и 01 января 1970 года.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...