Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

c# Как перевести микросекунды в обычное время.

Eureqs Club Знаток (296), закрыт 4 года назад
Я получаю с сервера время такое: 1574120400495822 (µsec), это 2019-11-18 23:40:00. Есть ли метод или алгоритм, что-бы перевести его?
Лучший ответ
Николай Веселуха Высший разум (360748) 4 года назад
using System;
namespace Example {
class Program {
private static void Main() {
var mcs = 1574120400495822;
var ms = mcs / 1000.0;
var date = new DateTime(1970, 1, 1);
date = date.AddMilliseconds(ms);
var culture = new System.Globalization.CultureInfo("ru-RU", true);
var box = date.GetDateTimeFormats(culture);
var format = box[51].Substring(0, 16);
Console.WriteLine(format);
//foreach (var item in box) Console.WriteLine(item); // Варианты формата на выбор
Console.ReadKey();
}
}
}
Остальные ответы
Лентяй Щусь Искусственный Интеллект (194292) 4 года назад
1574120400495822 микросекунд будет примерно 50 лет, плюс-мину пару лет.
Eureqs ClubЗнаток (296) 4 года назад
угу, видел, но как тогда получить ожидаемый результат?
Лентяй Щусь Искусственный Интеллект (194292) Просто посчитать, в 1 секунде 1 000 000 микросекунд, в минуте 60 секунд, в часе 60 минут, в сутках 24 часа, в году 365 суток, только я считал приблизительно и без учёта високосных годов.
Андрей Иванов Профи (618) 4 года назад
Это может быть какой-то hex код, который можно раскрыть с помощью нужной структуры. Поищи в интернете помощь по поводу сервера и метода которым ты получаешь время
Алексей Хвостовский Мудрец (18112) 4 года назад
Есть понимание что за 1 января 1970, что такое timestamp и операции с датой-временем?
Если нет - почитай..
Нужно просто добавить секунды к началу эпохи:

long timestamp = 1574120400495822;
DateTime date = new DateTime(1970, 1, 1, 0, 0, 0).AddSeconds(timestamp / 1000000);
Console.WriteLine(date);
Дед МазайГений (58109) 4 года назад
Лучше использовать AddMilliseconds или AddTicks вместо AddSeconds, иначе получается округление до секунд.
Похожие вопросы