2016-01-29 7 views
1

Я пытаюсь отформатировать даты на основе информации о культуре. Проблема в том, что я не знаю информацию о культуре, все, что я знаю, это часовой пояс и часовой пояс. Поэтому я хотел бы получить информацию о культуре в зависимости от того, какой часовой пояс, чтобы форматировать строку даты. Например, если часовым поясом является восточное стандартное время США, тогда формат даты будет ММ/ДД/ГГГГ, но если часовой пояс австралийский, мне нужно будет форматировать дату DD/MM/YYYY. Я знаю, что культура для часового пояса является отношением друг к другу, но если я пойду в обратном порядке, и у меня есть определенный часовой пояс, тогда это должно быть отношение один к одному. Кто-нибудь знает, как это сделать?Получить информацию о культуре из часового пояса или смещения часового пояса C#

+2

Это мало смысла, часовой пояс, подобный западноевропейскому времени, охватывает многие культуры. Прекратите думать, что часовой пояс полезен вообще, вам нужно знать культуру. –

ответ

1

Как уже отмечалось, они не связаны. Вы могли бы думать их некоторая корреляция, и вы можете найти примеры, где они есть, но тогда вы найдете много там, где они нет.

Считайте, что моя культура может быть en-US, даже если я посещаю или живу в Японии. Код культуры означает «английский, как говорят в Соединенных Штатах». Он не относится к текущему физическому местоположению пользователя.

Кроме того, если у вас есть только смещение часового пояса, вы, конечно же, не можете коррелировать, так как есть страны в Северной Америке и Южной Америке, которые в тот или иной момент имеют одинаковое смещение, но используют другую дату форматы.

Если у вас есть фактический часовой пояс, то это зависит от того, какой тип у вас есть. Для идентификаторов IANA на основе местоположения, таких как "America/New_York", вы можете найти код страны и угадать формат оттуда - хотя вы все равно будете иметь проблему с иностранным посетителем, описанную выше. Кроме того, существуют идентификаторы IANA, такие как "Etc/GMT-2", которые не зависят от конкретной страны. И тогда, если у вас есть идентификаторы часовых поясов Windows (например, те, которые используются с TimeZoneInfo в .NET), существует несколько диапазонов, охватывающих несколько стран. Нет гарантии, что каждая страна, использующая часовой пояс, использует тот же формат даты.

Посмотрите на date formats by country в Википедии. Вы увидите, что существует много мест, где используется более одного формата даты, в зависимости от контекста. The case of the Philippines, представляет особый интерес, поскольку они используют как MDY, так и DMY форматы.

+0

Спасибо за это объяснение. Похоже, идея лучше уйти от какой страны, а не выйти из часового пояса. – Bdh2991

+0

Вы сказали, что у вас нет страны или культуры, верно? Или это веб-приложение? Вы можете получить его из браузера, если это так. –

+0

Теперь я просто получаю пользовательский язык от запроса, сделанного клиентом. Если этого не существует, в нем будет использовано другое. – Bdh2991

0

Только с часовым поясом и смещением зоны немного невозможно определить формат даты. Например, согласно wikipedia, в Канаде, США и Мексике имеются общие часовые пояса и временное смещение, но формат даты отличается от