c # datetime с проперс форматом микросекунды - PullRequest
0 голосов
/ 26 марта 2019

У меня дата с микросекундами, она рассчитывается путем добавления тиков из 2000.1.1, в основном это работает, и выглядит так:

ulong timestampInTicks = ExtendedTimestamp * TimeSpan.TicksPerMillisecond / 10;
var startDate = new DateTime(2000, 1, 1, 0, 0, 0);
string dateWithMicroseconds =  startDate.AddTicks((long)timestampInTicks).ToString("HH:mm:ss.ffffff");

Проблема в формате возврата, возвращает мне что-то вроде 19: 34: 34: 260100, поэтому миллисекунды и микросекунды объединяются, когда я пытаюсь использовать ЧЧ: мм: ss.fff: fff Я получаю 19: 34: 34: 260: 260, чтобы миллисекунды удваивались.Есть ли способ, кроме использования разделения строки, для этого ??

Ответы [ 2 ]

1 голос
/ 26 марта 2019

Самая простая пользовательская реализация, о которой я мог подумать ..

ulong ExtendedTimestamp = 99;
ulong timeStampInTicks = ExtendedTimestamp * TimeSpan.TicksPerMillisecond / 10;
var startDate = DateTime.Now;
string dateWithMicroseconds = startDate.AddTicks((long)timeStampInTicks).ToString("HH:mm:ss.ffffff");
string dateHHmmss = dateWithMicroseconds.Split('.')[0];
string timeffffff = dateWithMicroseconds.Split('.')[1];
int precision = 3;
string milliSecs = timeffffff.Substring(0, precision);
string microSecs = timeffffff.Substring(precision, timeffffff.Length - precision);

string customFormat = string.Format("{0}:{1}:{2}", dateHHmmss, milliSecs, microSecs);
0 голосов
/ 26 марта 2019

, так как микросекунда равна миллисекунде / 1000, так что со ссылкой на эту дату формат вернется 01.01.2008 00: 30: 45.125.125000. Миллисекунды: 125, Микросекунды: 125000

DateTime dates =  new DateTime(2000, 1, 1, 0, 30, 45, 125);
Console.WriteLine("Date with micro and milliseconds: {0:MM/dd/yyy HH:mm:ss.fff.ffffff}",dates);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...