Как использовать ToFileTime в C # в Android? - PullRequest
0 голосов
/ 10 ноября 2019

можно ли использовать ToFileTime для даты и времени в проекте C # для Java (Android)? Мой проект подключается к серверу, и сервер получает от меня время в формате ToFileTime.

в C #

  DateTime testdate1 = new DateTime(2000, 10, 11);
  Console.WriteLine(testdate1.ToFileTime());

  show -> 126156834000000000

1 Ответ

1 голос
/ 10 ноября 2019

Внутри DateTime хранится Ticks , произошедшее с начала UnixEpoch. Любое другое свойство и вывод строки являются только интерпретацией этого значения.

"126156834000000000" очень похоже на значение тика (поскольку при получении даты в DateTime не хватает точности для заполнения этих более поздних цифр). И ToFileTime () действительно возвращает значение тика.

Может быть, вы хотели получить результат testdate1.ToString()? Но даже это может быть плохой идеей.

У меня есть 3 правила для работы с числами и, в частности, с датой и временем:

  1. Всегда хранить, получать и передавать значение UTC. И надеемся, что вам не придется иметь дело с часовыми поясами вручную в вашем приложении
  2. Никогда не сохраняйте, не извлекайте и не передавайте их как строки. Строка ужасна для обработки. Единственное, что хуже, это двоичный код.
  3. Если вы не можете следовать правилу 2, убедитесь, что вы выбрали фиксированное String Enconding и Culture для использования на всех конечных точках. Такие вещи, как XML и JSON, позаботятся об этом за вас.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...