Я хочу сохранить время данных в формате 01/01/2008 00: 30: 45.125 в качестве ключа для словаря.
DateTime
объекты неесть форматы .Это двоичные данные , которые представляют дату и время.Вы можете легко использовать DateTime
объект со значением, которое представляет момент, описанный 01/01/2008 00:30:45.125
, как ключ словаря, но это не одно и то же.
Если вам нужен определенный формат строки, используйте строку в качестве типа ключа .Но, вероятно, вы обдумываете это, и вам действительно не нужен этот конкретный формат строки в Словаре.В конце концов, вы всегда можете взять этот объект DateTime
и отформатировать его для последующего отображения, и это действительно лучшая практика.
Остальное беспокойство вызывает то, что DateTime
имеет точность до миллисекунды, то есть вы можете иметьболее одного значения DateTime
за одну миллисекунду.Если в вашей среде возможно создать две точки данных за одну и ту же миллисекунду и вы хотите, чтобы они оказались в одном и том же месте в вашем словаре, вам нужно будет усечь или округлить значение DateTime
.Я предпочитаю делать это, создавая новое значение DateTime
, используя свойства из старого, хотя некоторые вычисления с использованием Ticks
потенциально быстрее:
public DateTime RoundToMillisecond(DateTime original)
{
return new DateTime(original.Year, original.Month, original.Day, original.Hour, original.Minute, original.Second, original.Millisecond);
}