Я запутался здесь, пытаясь понять, как стандартизировать время, приходящее на нашу систему. Мы находимся в печальной ситуации, когда наш API подается в строковое время, подобное этому
2/3/20,08:47:28
Я точно знаю, что время подачи в местное время пользователя. Я также получаю часовой пояс вместе с вызовом API, таким как «Восточное стандартное время»
Из моего понимания прочитав следующую статью Я не могу преобразовать в UT C, если только у самой строки даты нет информации о смещении (чего нет)
Используя ту же статью, я пытался добраться до UT C с помощью следующего сценария тестирования в linqpad.
var str = "2/3/20,08:47:28";
var date = DateTime.Parse(str, new CultureInfo("en-Us"), DateTimeStyles.AssumeLocal);
TimeZoneInfo.ConvertTimeToUtc(date, TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")).Dump();
Кажется, это не работает, потому что я думаю, что DateTime.Parse
получает информацию о часовом поясе с моего локального компьютера, и когда я пытаюсь преобразовать ее в пример Восточное стандартное время это дует, потому что это не часовой пояс, в котором я нахожусь.
Мой вопрос
Есть ли способ проанализировать дату из строки без предположения, что структура DateTime предполагает часовой пояс локального компьютера?