SASGIS - SAS.Планета
View Issue Details
0001954SAS.Планета[All Projects] Хотелкаpublic11-06-2013 07:5011-06-2013 21:32
Robbi 
 
normalminorhave not tried
confirmedopen 
121010 
24xxxx 
0001954: Добавить в программу настройки формата даты и времени
При добавлении меток в одной и той же портативной версии Планеты на компьютерах с разными региональными настройками названия и описания оказываются в разных форматах, что не очень красиво и часто неудобно
No tags attached.
Issue History
11-06-2013 07:50RobbiNew Issue
11-06-2013 08:00vdemidovStatusnew => confirmed
11-06-2013 08:00vdemidovProduct Version => 121010
11-06-2013 08:00vdemidovTarget Version => 24xxxx
11-06-2013 08:00vdemidovSummaryФормат используемых в программе дат хранить в ini => Добавить в программу настройки формата даты и времени
11-06-2013 08:33vasketsovNote Added: 0011634
11-06-2013 08:48RobbiNote Added: 0011637
11-06-2013 12:19vasketsovNote Added: 0011648
11-06-2013 12:29RobbiNote Added: 0011649
11-06-2013 21:32vasketsovNote Added: 0011653

Notes
(0011634)
vasketsov   
11-06-2013 08:33   
Моё мнение - добавление настроек не требуется.

Вся куча преобразований даты-времени в строку делится на 2 больших варианта:
а) если над полученной строкой не произодится никаких манипуляций, сортировок, анализов и прочего (в том числе сохранения), её видит только текущий пользователь;
б) если такие манипуляции производятся, либо если полученной строкой оперируют много пользователей.

В первом случае можно и нужно брать настройки из профиля пользователя. Например в edit-ке с датой карты заполнения, закачки и т.п. (и то при сохранении нужен переносимый формат, не зависящий от настроек в профиле, иначе настройка не поднимется или поднимется неверно).

Во втором случае настройки из профиля брать не то что нельзя, а даже вредно, поскольку (с точностью до разделителя) практически всегда необходимо (а часто наоборот достаточно) иметь формат типа YYYY_MM_DD_HH_NN_SS.ZZZZZ.
Во-первых, он сразу однозначно понятен всем юзерам без исключения, так как год идёт первым, а месяц - вторым.
Во-вторых, он переносим между разными сущностями, из проги в СУБД, из СУБД в HTTP, в GPX,... - он понимается программно буквально везде.
В-третьих, только он обеспечивает корректную сортировку по дате.
В-четвёртых, его очень просто парсить даже при отсутствии разделителей. Обратный разбор произвольного формата, если это другой произвольный формат, в общем случае невозможен, так как нет никакой гарантии, что в момент формирования строки нстройка формата даты-времени не менялась. Использование приведённого формата гарантирует, что он никогда не менялся, и строки на его основе никогда не менялись (при смене настройки в профиле).
...

Итого:
а) надо просто понять в каждом конкретном случае, какой подход использовать;
б) никих дополнительных настроек формата не надо*), ибо по большому счёту пофигу, куда ходить на настройками, принципиально ничего с точки зрения постоянства и разбора это не решает.
-----------------------------
*) разве что настройки разделителей, но дата просто и корректно разбирается при любом односимвольном или безисмвольном разделителе, так что даже этот вопрос сильно спорный.
(0011637)
Robbi   
11-06-2013 08:48   
Я привёл пример портативного САС. Я в свою БД добавляю всё в фиксированном формате. Запускаю его на другом компе, а там другой формат дат. мне всё равно как отображаются даты в диалогах, но я бы хотел, чтобы внутри БД все текстовые представления дат были в моём формате. Для этого и надо сохранить в ini выбранный формат текстового представления дат в местах не влияющих на интерфейс и сортировки/ссылки, но влияющий на восприятие данных пользователем.
(0011648)
vasketsov   
11-06-2013 12:19   
>были в моём формате
В каком-то особенном?
(0011649)
Robbi   
11-06-2013 12:29   
Нет, просто на компе на котором добавил точки формат был другой. Неприятно
(0011653)
vasketsov   
11-06-2013 21:32   
Тут выше написано буквально следущее: если устраивает формат YYYY_MM_DD_HH_NN_SS.ZZZZZ с точностью до разных разделителей и усечения кусков, ничего выдумывать не надо, потому что если захардкодить этот формат - это будет весьма пользительно, и как минимум - одинаково везде.