Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Сравнение DateTime разных культур
|
|||
|---|---|---|---|
|
#18+
Проблема. Сохраняю DateTime.Now в строку с нужным мне форматом: Код: c# 1. Потом эту дату строкой пишу в куки пользователю. Потом приходит эта кука мне от пользователя, и я сравниваю её с DateTime.Now. Под дебагом смотрю - DateTime.Now = 4/8/2014, а DateTime, который получился у меня после конвертации из строки клиента методом Код: c# 1. 2. 3. равен 8/4/2014. А должны быть равны. Как сделать их равными? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2014, 14:44 |
|
||
|
Сравнение DateTime разных культур
|
|||
|---|---|---|---|
|
#18+
Есть подозрение, что если для ToString использовал одну культуру, то и для парсинга ту же самую культуру нужно использовать. Если другую культуру буду использовать - получу неравенство для фактически равных дат. Так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2014, 14:46 |
|
||
|
Сравнение DateTime разных культур
|
|||
|---|---|---|---|
|
#18+
user7320, ... как мне кажется, в подобных случаях (когда не уверен, в каких папуа-ново-гвинеях сидит клиент) нужно использовать либо UtcNow, либо CreateSpecificCulture(en-US), например, чтобы отойти от этих культур и часовых поясов ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2014, 15:09 |
|
||
|
Сравнение DateTime разных культур
|
|||
|---|---|---|---|
|
#18+
user7320Есть подозрение, что если для ToString использовал одну культуру, то и для парсинга ту же самую культуру нужно использовать. Если другую культуру буду использовать - получу неравенство для фактически равных дат. Так?Да, верно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2014, 15:30 |
|
||
|
Сравнение DateTime разных культур
|
|||
|---|---|---|---|
|
#18+
skyANAuser7320Есть подозрение, что если для ToString использовал одну культуру, то и для парсинга ту же самую культуру нужно использовать. Если другую культуру буду использовать - получу неравенство для фактически равных дат. Так?Да, верно. А это значит, что эту культуру надо где-то сохранять, т. к. если юзер поменял культуру (например, раскладку переключил), то CurrentCulture уже другую культуру будет иметь. Так? ПримечаниеЧего стоит хотя бы то, что при разных запусках одного и того же приложения на одной и той же машине можно получать информацию в эксепшенах на разных языках - зависит от установленных языков фреймворка и текущих раскладках пользователя. carrotikuser7320, ... как мне кажется, в подобных случаях (когда не уверен, в каких папуа-ново-гвинеях сидит клиент) нужно использовать либо UtcNow, либо CreateSpecificCulture(en-US), например, чтобы отойти от этих культур и часовых поясов ... У меня проблема в формате вывода времени. Мне нужно одновременно и культуру сохранить, и в строку дату-время вывести с нужным ограничением. Т. е. я хочу вывести только число, месяц, год, часы, минуты, секунды. Пишу "dd/MM/yyyy" - хоппа, это формат для ru-культур! Т. е. получается, что культура задаётся не только через объект CultureInfo, но и через форматирующую строку! При текущей культуре en-us вывожу как "dd/MM/yyyy HH:mm:ss". При парсинге с той же текущей культурой, что и при выводе, получаю как "MM/dd/yyyy HH:mm:ss" - т. е. перепутанные местами числа и месяцы. СПРАШИВАЕТСЯ, ПОЧЕМУ ФОРМАТ ВЫВОДА ВЛИЯЕТ НА КУЛЬТУРУ?! Получается, что, чтобы формат вывода не влиял на культуру, всегда надо вместе с форматом использовать и CultureInfo? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2014, 16:10 |
|
||
|
Сравнение DateTime разных культур
|
|||
|---|---|---|---|
|
#18+
user7320А это значит, что эту культуру надо где-то сохранять, т. к. если юзер поменял культуру (например, раскладку переключил), то CurrentCulture уже другую культуру будет иметь. Так? Не совсем так. Игры с культурами уместны только там, где пользователь взаимодействует с ПО. В тех местах, где пользователю всё равно какая культура, используйте Invariant культуру, например для хранения даты/времени в куках -- какая пользователю разница в каком формате вы её там храните? user7320Т. е. получается, что культура задаётся не только через объект CultureInfo, но и через форматирующую строку! Не совсем так. Когда вы указываете разделитель '/' для даты, он может быть отображён в разных культурах по-разному, где-то как '/', где-то как '-' или даже '.' user7320 перепутанные местами числа и месяцы В англо-американской культуре в начале идёт месяц, в русской наоборот. Если вам так важна культура, не указывайте формат даты как dd/MM/yyyy, используйте общий формат: Строки стандартных форматов даты и времени ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2014, 16:20 |
|
||
|
Сравнение DateTime разных культур
|
|||
|---|---|---|---|
|
#18+
Вобщем, сделал так. Завёл себе статичное поле типа CultureInfo с нужной мне культурой, вбитой ручками. И статичное строковое поле с форматом "dd/MM/yyyy HH:mm:ss". И теперь все даты к этой культуре привожу при выводе в строку и парсинге, а при только выводе в строку ещё и этот формат добавляю. Вроде, пока всё работает, как я хотел. Как я понял, сам формат хранения даты и времени в DateTime культурнонезависимый (т. к. всё по отдельным компонентам хранится), а культура и формат влияют только на вывод (в строку) и парсинг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2014, 16:23 |
|
||
|
Сравнение DateTime разных культур
|
|||
|---|---|---|---|
|
#18+
user7320Получается, что, чтобы формат вывода не влиял на культуру, всегда надо вместе с форматом использовать и CultureInfo? Рекомендую почитать от корки до корки http://msdn.microsoft.com/ru-ru/library/system.globalization.cultureinfo.aspx все вопросы снимет как рукой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2014, 16:24 |
|
||
|
Сравнение DateTime разных культур
|
|||
|---|---|---|---|
|
#18+
user7320Как я понял, сам формат хранения даты и времени в DateTime культурнонезависимый (т. к. всё по отдельным компонентам хранится), а культура и формат влияют только на вывод (в строку) и парсинг. Естественно. Есть ещё такие понятия, как глобальная культура. Её можно задать программно или в web.config, чтобы не указывать конкретный CultureInfo каждый раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2014, 16:25 |
|
||
|
Сравнение DateTime разных культур
|
|||
|---|---|---|---|
|
#18+
hVosttВ англо-американской культуре в начале идёт месяц, в русской наоборот. Если вам так важна культура, не указывайте формат даты как dd/MM/yyyy, используйте общий формат: Строки стандартных форматов даты и времени Да, я знаю. Ещё заметил, что "инвариантная" и "стандартная" культура - американская. Кто бы сомневался. ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2014, 16:26 |
|
||
|
Сравнение DateTime разных культур
|
|||
|---|---|---|---|
|
#18+
user7320Да, я знаю. Ещё заметил, что "инвариантная" и "стандартная" культура - американская. Кто бы сомневался. ))) В общем-то да. Но есть ньюанс. Инваринтная культура не меняется никогда и всегда одинаковая на всех платформах, типо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2014, 16:29 |
|
||
|
Сравнение DateTime разных культур
|
|||
|---|---|---|---|
|
#18+
user7320 Да, я знаю. Ещё заметил, что "инвариантная" и "стандартная" культура - американская. Кто бы сомневался. ))) ...если придется когда-либо общаться программно с почтовым сервером по IMAP-протоколу, то там формат даты только такой: dd-MMM-yyyy, т.е. вида 08-Apr-2014, и хучьубей ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2014, 17:03 |
|
||
|
Сравнение DateTime разных культур
|
|||
|---|---|---|---|
|
#18+
carrotikuser7320 Да, я знаю. Ещё заметил, что "инвариантная" и "стандартная" культура - американская. Кто бы сомневался. ))) ...если придется когда-либо общаться программно с почтовым сервером по IMAP-протоколу, то там формат даты только такой: dd-MMM-yyyy, т.е. вида 08-Apr-2014, и хучьубей ... Это не "инвариантная и стандартная"? Т. е., надо просто подстроиться под протокол, и всё будет хорошо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2014, 18:47 |
|
||
|
Сравнение DateTime разных культур
|
|||
|---|---|---|---|
|
#18+
user7320Это не "инвариантная и стандартная"? Т. е., надо просто подстроиться под протокол, и всё будет хорошо? ... в данном конкретном случае - да ... Но стандарты протокола IMAP живут и побеждают уже лет эдак 30 и никто ничего менять не хочет ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2014, 19:27 |
|
||
|
Сравнение DateTime разных культур
|
|||
|---|---|---|---|
|
#18+
carrotikuser7320Это не "инвариантная и стандартная"? Т. е., надо просто подстроиться под протокол, и всё будет хорошо? ... в данном конкретном случае - да ... Но стандарты протокола IMAP живут и побеждают уже лет эдак 30 и никто ничего менять не хочет ... Наверное, просто всем по... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2014, 19:38 |
|
||
|
Сравнение DateTime разных культур
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2014, 03:19 |
|
||
|
Сравнение DateTime разных культур
|
|||
|---|---|---|---|
|
#18+
user7320, вот это вот MM/dd/yyyy это уже не культура это - бескультурие ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2014, 03:35 |
|
||
|
Сравнение DateTime разных культур
|
|||
|---|---|---|---|
|
#18+
Чем timestamp ненравится? Засунул число в куки и переводи потом куда хошь, в любой формат, хоть на сервере, хоть на клиенте. А с ентими разными форматами можно влететь - alert(Date.parse('09.04.2014 5:27:27')); // NaN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2014, 06:03 |
|
||
|
Сравнение DateTime разных культур
|
|||
|---|---|---|---|
|
#18+
Культуристuser7320, вот это вот MM/dd/yyyy это уже не культура это - бескультурие ! А ещё у них недесятичная метрическая система! Но зато нельзя в двойное отрицание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2014, 06:33 |
|
||
|
Сравнение DateTime разных культур
|
|||
|---|---|---|---|
|
#18+
st_stЧем timestamp ненравится? Засунул число в куки и переводи потом куда хошь, в любой формат, хоть на сервере, хоть на клиенте. Я ещё сравниваю на устаревание. С чем сравнивать на стуревание? - С DateTime.Now - как раз подходит. А как сравнить TimeStamp с DateTime? st_stalert(Date.parse('09.04.2014 5:27:27')); // NaN Я говно-джаваскрипт стараюсь не использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2014, 06:37 |
|
||
|
Сравнение DateTime разных культур
|
|||
|---|---|---|---|
|
#18+
Код: c# 1. 2. 3. 4. 5. 6. 7. 15853545 - inogda luchshe zevatj chem govoritj.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2014, 10:27 |
|
||
|
Сравнение DateTime разных культур
|
|||
|---|---|---|---|
|
#18+
user7320Я говно-джаваскрипт стараюсь не использовать.Пишу говно на c# ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2014, 10:42 |
|
||
|
Сравнение DateTime разных культур
|
|||
|---|---|---|---|
|
#18+
user7320st_stЧем timestamp ненравится? Засунул число в куки и переводи потом куда хошь, в любой формат, хоть на сервере, хоть на клиенте. Я ещё сравниваю на устаревание.В Cookie писать дату, которую проверять на устаревание. Любопытно, а expires почему не подходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2014, 10:44 |
|
||
|
Сравнение DateTime разных культур
|
|||
|---|---|---|---|
|
#18+
skyANAuser7320пропущено... Я ещё сравниваю на устаревание.В Cookie писать дату, которую проверять на устаревание. Любопытно, а expires почему не подходит? Потому что я ещё добавляю к дате мусор в разные места (и чтобы длина полученной строки менялась) и хеширую всё это дело. На сервере, соответственно, обратно всё очищаю. "Чтобы никто не догадался", что я там храню. skyANAuser7320Я говно-джаваскрипт стараюсь не использовать.Пишу говно на c# Ага. ) zadral Код: c# 1. 2. 3. 4. 5. 6. 7. 15853545 - inogda luchshe zevatj chem govoritj.... Спасибо, щас проверю. Только вместо ParseExact(now, "s", null) надо, наверное, ParseExact(now, "s", CultureInfo.InvariantCulture)? ЗЫ. Привет, МСУ. Сколько раз уже штангу поднимаешь и сколько килограмм? Я как-то давно делал 80кг х 5 раз, но щас всё больше на подтягивания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2014, 13:57 |
|
||
|
Сравнение DateTime разных культур
|
|||
|---|---|---|---|
|
#18+
user7320skyANAпропущено... В Cookie писать дату, которую проверять на устаревание. Любопытно, а expires почему не подходит? Потому что я ещё добавляю к дате мусор в разные места (и чтобы длина полученной строки менялась) и хеширую всё это дело. На сервере, соответственно, обратно всё очищаю. "Чтобы никто не догадался", что я там храню.Дата срока истечения лицензии что-ли? Если да, то на фига в Cookie то её пихать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2014, 14:41 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38608982&tid=1357473]: |
0ms |
get settings: |
5ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
32ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 261ms |
| total: | 382ms |

| 0 / 0 |
