С С# DateTime и культурой я могу отформатировать строку с помощью:
DateTime exampleDate = DateTime.Now;
CultureInfo culture = new CultureInfo("fr-FR");
String datetimeFormat = exampleDate.ToString(culture.DateTimeFormat.ShortDatePattern));
Как мне добиться того же с помощью NodaTime? Я пробовал комбинации по строкам (не компилируется - ToString требует двух параметров с NodaTimef):
DateTimeZone timeZone = DateTimeZoneProviders.Tzdb["fr-FR"];
ZonedDateTime nowZonedDateTime = new ZonedDateTime(Instant.FromDateTimeUtc(DateTime.Now.ToUniversalTime()), timeZone);
String nodaFormat = nowZonedDateTime.LocalDateTime.ToString(culture.DateTimeFormat.ShortDatePattern));
Я также пробовал комбинации вокруг документации, которая указывает, что мне нужно использовать «d» для форматирования на короткую дату (это вызывает исключение):
String nodaFormat = nowZonedDateTime.LocalDateTime.ToString("d", culture));
Что мне не хватает?
IClock
вместоDateTime.Now
- с включеннымZonedClock
это становится намного проще...) - person Jon Skeet   schedule 27.12.2019