Бэкэнды должны писать в стандартном формате.XML не должен просто использовать локальный формат даты - таким образом, безумие лежит.Суть XML в том, чтобы быть форматом обмена для компьютеров , а не для людей .Если вы не форматируете что-либо для человеческого потребления, вам не следует использовать локальные вариации.
Так что либо используйте определенный формат везде, указав CultureInfo.InvariantCulture при форматировании, либо используйте dt.ToString("o")
или другую строку формата, инвариантного к культуре.
Если вы просто говорите о моменте времени (т.е. местное время не имеет значения, только глобальный момент), вам следует также убедитесь, что вы используете согласованный часовой пояс, где UTC является очевидным выбором.Например, используйте DateTime.UtcNow
вместо DateTime.Now
.
Как только вы получите код generation , делающий разумные вещи, потребляющий , это должно быть очень просто.
Если, однако, у вас нет такой роскоши, как изменить код генерации, вам может придется прибегнуть к передаче правого CultureInfo
в DateTime.TryParseExact
.Однако это означает, что вам нужно знать культуру, использованную для создания файла.Если файлы создаются с учетом культурных особенностей, и вы не знаете, какую культуру они используют, вы в основном напичканы.Например, 05.03.2010 может означать 5 марта 2010 г. или 3 мая 2010 г. Без дополнительной информации у вас нет способа решить, какой из них использовать.