Я использую DateTime
в C # для отображения времени. Какую часть даты каждый использует при построении времени?
например. следующее недопустимо, потому что нет нулевого месяца или нулевого дня:
// 4:37:58 PM
DateTime time = new DateTime(0, 0, 0, 16, 47, 58);
Использую ли я нулевую дату COM?
// 4:37:58 PM
DateTime time = new DateTime(1899, 12, 30, 16, 47, 58);
Или, возможно, SQL Server?
//4:37:58 PM
DateTime time = new DateTime(1900, 1, 1, 16, 47, 58);
Я понимаю, что это произвольно, так как я буду игнорировать части даты в коде, но было бы неплохо иметь возможность использовать:
DateTime duration = time2 - time1;
Ответ
Мне кажется, мне нравится MinValue
DateTime time = DateTime.MinValue.Date.Add(new TimeSpan(16, 47, 58));
Примечание: Я не могу использовать TimeSpan
, потому что это не хранит время суток. И причина, по которой я это знаю, заключается в том, что нет способа отобразить его содержимое как время.
То есть TimeSpan
записывает промежуток времени , а не время суток , например ::
TimeSpan t = new TimeSpan(16, 47, 58);
t.ToString();
возвращает промежуток времени в формате часов : минут : секунд , например ::
16:47:58
а не время:
4:47:58 PM (United States)
04:47:58 nm (South Africa)
4:47:58.MD (Albania)
16:47:58 (Algeria)
04:47:58 م (Bahrain)
PM 4:47:58 (Singapore)
下午 04:47:58 (Taiwan)
04:47:58 PM (Belize)
4:47:58 p.m. (New Zealand)
4:47:58 μμ (Greece)
16.47.58 (Italy)
오후 4:47:58 (Korea)
04:47:58 ب.ظ (Iran)
ਸ਼ਾਮ 04:47:58 (India)
04:47:58 p.m. (Argentina)
etc
Другими словами, есть разница между временным интервалом и временем. А также осознайте, что TimeSpan
не предоставляет механизма для преобразования промежутка времени в время суток - и для этого есть причина.