Внутри DateTime хранится Ticks , произошедшее с начала UnixEpoch. Любое другое свойство и вывод строки являются только интерпретацией этого значения.
"126156834000000000" очень похоже на значение тика (поскольку при получении даты в DateTime не хватает точности для заполнения этих более поздних цифр). И ToFileTime () действительно возвращает значение тика.
Может быть, вы хотели получить результат testdate1.ToString()
? Но даже это может быть плохой идеей.
У меня есть 3 правила для работы с числами и, в частности, с датой и временем:
- Всегда хранить, получать и передавать значение UTC. И надеемся, что вам не придется иметь дело с часовыми поясами вручную в вашем приложении
- Никогда не сохраняйте, не извлекайте и не передавайте их как строки. Строка ужасна для обработки. Единственное, что хуже, это двоичный код.
- Если вы не можете следовать правилу 2, убедитесь, что вы выбрали фиксированное String Enconding и Culture для использования на всех конечных точках. Такие вещи, как XML и JSON, позаботятся об этом за вас.