Преобразование любого формата времени в миллисекунды с помощью C#

У меня есть время в таком формате: 00:02:13,512 Есть ли метод в C#, который может преобразовать это время в миллисекунды (и наоборот) или я должен сделать это вручную?


person As As    schedule 03.03.2014    source источник
comment
Время — это момент времени, а миллисекунды — это продолжительность. Можете ли вы уточнить, что вы ищете? Миллисекунды с полуночи?   -  person D Stanley    schedule 03.03.2014
comment
Миллисекунды с 00:00:00,000   -  person As As    schedule 03.03.2014
comment
Итак, является ли 00:02:13,512 значением TimeSpan, строкой или частью DateTime (в последнем случае используйте .TimeOfDay)?   -  person Jeppe Stig Nielsen    schedule 03.03.2014


Ответы (1)


Используйте TimeSpan для сохранения этой информации. Вы можете использовать TimeSpan.ParseExact как:

TimeSpan ts = TimeSpan.ParseExact("00:02:13,512", 
                                  @"hh\:mm\:ss\,fff", 
                                  CultureInfo.InvariantCulture);

Вы можете получить TotalMilliseconds, используя свойство TimeSpan.TotalMilliseconds:

var totlaMilliseconds = ts.TotalMilliseconds;

Это вернет вам 133512.0, если вам просто нужна миллисекундная часть, тогда вы можете использовать ts.Milliseconds;, что даст вам 512

person Habib    schedule 03.03.2014
comment
Я думаю, это именно то, чего хочет ОП. +1. - person Soner Gönül; 03.03.2014
comment
Спасибо. Я постараюсь как можно скорее. - person As As; 03.03.2014
comment
@AsAs, string str = ts.ToString(@"hh\:mm\:ss\,fff"); даст вам то же самое, вы также можете получить доступ к ts.TotalHours и т. д., чтобы создать свою собственную строку. - person Habib; 03.03.2014