powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Перевод даты из строки в международный формат
14 сообщений из 14, страница 1 из 1
Перевод даты из строки в международный формат
    #38026307
Фотография OracleLover
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет, немного недопонимаю ситуацию с международными форматами.

К примеру есть у меня дата
Tue Dec 04 08:15:48 IST 2012

Это строка из входящей xml. В МСДН есть способы для перевода такого формата, т.е просто главное не мешать системе и она сама все переведет.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
System.Globalization.CultureInfo enUS = new System.Globalization.CultureInfo("en-US");
if (DateTime.TryParseExact(element.Value,
                                    "ddd MMM dd H:mm:ss \"IST\" yyyy",
                                    enUS,
                                    System.Globalization.DateTimeStyles.NoCurrentDateDefault, out txnDate))
                            {
                                ...
                            }



Данный код нормально все переводит если строка заданного формата. Меня интересует стандарт даты: если вместо IST я получаю GMT, PDT или прочие стандарты стран - это МОЯ проблема что я не могу ее распарсить и у меня чуть выше говнокод(если так то как переводить из разных стандартов), или это проблема моих подписчиков для которых надо четко задать формат, который они должны соблюдать?
...
Рейтинг: 0 / 0
Перевод даты из строки в международный формат
    #38026437
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OracleLover,

R ?
...
Рейтинг: 0 / 0
Перевод даты из строки в международный формат
    #38026447
Фотография OracleLover
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pationOracleLover,

R ?

позвольте поинтересоваться, вы о чем?
...
Рейтинг: 0 / 0
Перевод даты из строки в международный формат
    #38026453
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OracleLoverpationOracleLover,

R ?

позвольте поинтересоваться, вы о чем?
дата по формату RFC1123?
...
Рейтинг: 0 / 0
Перевод даты из строки в международный формат
    #38026464
Фотография OracleLover
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pationOracleLoverпропущено...


позвольте поинтересоваться, вы о чем?
дата по формату RFC1123?

перевести дату в строку заданного формата нетрудно. Их десятки этих форматов. А вот из строки в дату - меня больше в моей ситуации волнует.
...
Рейтинг: 0 / 0
Перевод даты из строки в международный формат
    #38026471
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OracleLoverpationпропущено...

дата по формату RFC1123?

перевести дату в строку заданного формата нетрудно. Их десятки этих форматов. А вот из строки в дату - меня больше в моей ситуации волнует.

млять, дата в строке в каком формате?
...
Рейтинг: 0 / 0
Перевод даты из строки в международный формат
    #38026476
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OracleLover,

насколько я знаю в .NET нет поддержки для разбора дат с идентификатором часового пояса. Возможно потому что подобных идентификаторов много и их список не является неизменным. Поэтому если тебе нужно парсить даты именно в таком формате, то придется иметь список поддерживаемых идентификаторов часового пояса и парсить даты учитывая их. Список можно найти в т.н. tz database .

Проще будет если самостоятельно выбрать формат даты. Лучше остановиться на UTC т.к. это заодно решает проблему с переводом часов на летнее/зимнее время.
...
Рейтинг: 0 / 0
Перевод даты из строки в международный формат
    #38026523
Фотография OracleLover
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazileOracleLover,

насколько я знаю в .NET нет поддержки для разбора дат с идентификатором часового пояса. Возможно потому что подобных идентификаторов много и их список не является неизменным. Поэтому если тебе нужно парсить даты именно в таком формате, то придется иметь список поддерживаемых идентификаторов часового пояса и парсить даты учитывая их. Список можно найти в т.н. tz database .

Проще будет если самостоятельно выбрать формат даты. Лучше остановиться на UTC т.к. это заодно решает проблему с переводом часов на летнее/зимнее время.

спасибо, я так и предполагал что это не должно быть моей проблемой. Обговорим формат.
...
Рейтинг: 0 / 0
Перевод даты из строки в международный формат
    #38026527
Фотография OracleLover
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pationOracleLoverпропущено...


перевести дату в строку заданного формата нетрудно. Их десятки этих форматов. А вот из строки в дату - меня больше в моей ситуации волнует.

млять, дата в строке в каком формате?

тут непрокатит
Код: c#
1.
DateTime.ParseExact(dt, "r", null);



строка не удовлетворяет формату RFC1123, а бегать парсить, добавлять запятые и менять порядок некоторых позиций это уже не то.
...
Рейтинг: 0 / 0
Перевод даты из строки в международный формат
    #38026612
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OracleLover,

Вопрос вдогонку. Почему ты используешь полные имена типов и не используешь var? С ними же короче и выразительнее получается:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
var enUS = new CultureInfo("en-US");
if (DateTime.TryParseExact(element.Value,
                                     "ddd MMM dd H:mm:ss \"IST\" yyyy",
                                     enUS,
                                     DateTimeStyles.NoCurrentDateDefault, out txnDate))
{
    ...
}
...
Рейтинг: 0 / 0
Перевод даты из строки в международный формат
    #38026657
Фотография OracleLover
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazileOracleLover,

Вопрос вдогонку. Почему ты используешь полные имена типов и не используешь var? С ними же короче и выразительнее получается:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
var enUS = new CultureInfo("en-US");
if (DateTime.TryParseExact(element.Value,
                                     "ddd MMM dd H:mm:ss \"IST\" yyyy",
                                     enUS,
                                     DateTimeStyles.NoCurrentDateDefault, out txnDate))
{
    ...
}



я сторонник старой школы и считаю var там где ты явно знаешь тип - говнокодом.
...
Рейтинг: 0 / 0
Перевод даты из строки в международный формат
    #38026667
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OracleLoverbazileOracleLover,

Вопрос вдогонку. Почему ты используешь полные имена типов и не используешь var? С ними же короче и выразительнее получается:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
var enUS = new CultureInfo("en-US");
if (DateTime.TryParseExact(element.Value,
                                     "ddd MMM dd H:mm:ss \"IST\" yyyy",
                                     enUS,
                                     DateTimeStyles.NoCurrentDateDefault, out txnDate))
{
    ...
}



я сторонник старой школы и считаю var там где ты явно знаешь тип - говнокодом.Забавно. Я наоборот поступаю: там, где явно из текста понятно, какой тип у переменной (new CultureInfo), то использую var. ReSharper, мне кажется, со мною солидарен :)
...
Рейтинг: 0 / 0
Перевод даты из строки в международный формат
    #38026677
Фотография OracleLover
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я могу конечно привести пример из своей практики где использование var с большими потерями дало нам изменение этого кода. С тех пор я больше на грабли не наступал. Нельзя написать var T = null. Отсюда и все проблемы.
...
Рейтинг: 0 / 0
Перевод даты из строки в международный формат
    #38026704
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЯ наоборот поступаю: там, где явно из текста понятно, какой тип у переменной (new CultureInfo), то использую var.
Аналогично.

OracleLoverя сторонник старой школы и считаю var там где ты явно знаешь тип - говнокодом.
Говнокодом использование var становится в коде вида "var smth = DoWork()" когда тип переменной неясен без взгляда на другие части кода. В случае когда мы объявляем и сразу инициализируем переменную использование var делает код более компактным и, следовательно, более легким для чтения.

OracleLoverя могу конечно привести пример из своей практики где использование var с большими потерями дало нам изменение этого кода.
Никто не говорит что надо всегда использовать var. Есть ситуации когда использование var упрошает чтение кода, есть когда делают код хуже.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Перевод даты из строки в международный формат
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]