Как принять текущую дату с JS на C#

Всем привет. Отправляю с JS на бекенд дату в UTC в таком виде : Tue, 09 Aug 2022 07:03:41 GMT

Как эту дату для типа DataTime обработать на стороне бекенда? И вернуть время с учетом +3 (Московское время)

На данный момент как бы я не передавал дату мне возращается : 0001-01-01T00:00:00


Ответы (1 шт):

Автор решения: aepot

JavaScript

Берете дату

const date = new Date();
console.log(date);

Получаете

Tue Aug 09 2022 11:57:50 GMT+0300 (Москва, стандартное время)

Далее делаете

const timeStamp = date.getTime();
console.log(timeStamp);

То есть вызываете функцию .getTime() для для объекта типа Date.

Получаете

1660035470640

Это UNIX таймштамп в миллисекундах. Отправляете его на бэк числом.

C#

Принимаете как long

long timeStamp = 1660035470640;
DateTime date = DateTimeOffset.FromUnixTimeMilliseconds(timeStamp).DateTime.ToLocalTime();
Console.WriteLine(date);

Получаете вывод, для меня это UTC+3

09.08.2022 11:57:50

Без .ToLocalTime() получится UTC 8:57:50

Или если будет угодно в универсальном формате

Console.WriteLine(date.ToString("s"));
2022-08-09T11:57:50
→ Ссылка