Я хотел бы написать метод, который дает мне 3 буквы - представляющие день, месяц, год - из datetimeformat.DateTime получить буквы, представляющие день, месяц, год с текущей культуры
Так ан-американской культуры мои желаемые значения возврата будет (плюс сепаратор)
- d
- M
- у
- /
в де-DE тот же метод должен возвращаться
- Т (Т аг = день)
- М (М ОНАС = месяц)
- J (J AHR = год)
- . (Separator)
Я имел взгляд в форму DateTimeFormatInfo класса CurrentCulture, но смог найти только разделитель у вас есть какие-либо идеи, как я могу получить остальное?
var culture = Thread.CurrentThread.CurrentCulture;
Console.WriteLine(culture.DateTimeFormat.DateSeparator);
мне это нужно, потому что TEXT функция внутри Excel не принимает формат из InvariantCulture и только обрабатывает его от CurrentCulture.
Так что-то вроде этого не является действительным в немецкой версии Excel:
=TEXT(NOW();"dd.MM.yyyy")
это должно быть установлено с
=TEXT(NOW();"TT.MM.JJJJ")
(это не имеет значения, если его сделать с помощью VBA, его) Вы можете посмотреть следующее: http://www.rondebruin.nl/win/s9/win013.htm
Формат строки может быть любым, поскольку пользователь может вводить его так, как ему нравится и мне нужно перевести его в текущую культуру.
какой формат строки вы используете? ключевые ценности не изменяются с культурой. –
, которого нет в .net - возможно, вы могли написать что-то по своему усмотрению. –
@ DanielA.White, как бы вы это сделали, с помощью простых манипуляций с строками и как бы выглядел бы этот метод, на какие свойства вы бы посмотрели, я действительно не знаю всех культур, где он может быть другим, и метод манипуляции строкой, который действителен для каждой культуры, и каждый пользователь мог бы изменить свои настройки на что-то совершенно случайное. –