|
Пересчет часового пояса городов по отношению к определенному городу | ☑ | ||
---|---|---|---|---|
0
LivingStar
12.02.15
✎
10:04
|
Задача в получении времени определенного города, по введенному времени разных городов. Есть справочник города, там разные города. Есть документ, по разным городам где указанно время в учете с часовым поясом этих городов. Нужно вывести в отчете колонку где время будет пересчитано к часовому поясу определенного города. Где можно было бы получить такую информацию?
|
|||
1
probably
12.02.15
✎
10:30
|
Путем сложнния и вычитания, не?
Все данные должны хранится в едином формате а ля utc+3. Отсюда разница считается одним арифметическим действием |
|||
2
LivingStar
12.02.15
✎
10:34
|
(1) вопрос в том где взять эти данные, где есть эта часовая разница к такому то городу. Что за формат?
|
|||
3
Гёдза
12.02.15
✎
10:34
|
(2) где взять часовой пояс города ты хотел спросить?
|
|||
4
LivingStar
12.02.15
✎
10:35
|
(3) да, если это так называется, часовой пояс города по отношению к нему всех прочих городов
|
|||
5
LivingStar
12.02.15
✎
10:48
|
пока вижу вариант в инете найти ресурс с разницей в часах с тем или иным городом, добавить поле в справочник и указать эти цыфры разницы в часах, для последующего пересчета
|
|||
6
probably
12.02.15
✎
11:16
|
(2) городов сколько? десятки тысяч?
или несколько десятков? о чем речь вообще? Взять таблицу и руками её вбить. Если города не только отечественные, то нужно будет предусмотреть переход на зимнее/летнее время. |
|||
7
Гёдза
12.02.15
✎
11:19
|
(4) часовые пояса относительно гринвича идут вообщето
|
|||
8
probably
12.02.15
✎
11:33
|
(7) курс школьной географии я готов только за деньги давать)
Оффтоп: пугает меня состояние нашей нации, складывается впечатление, что подавляющее большинство живет по принципу "мы ведь дальше своей Дубровки никуда не ездим" (с) |
|||
9
LivingStar
12.02.15
✎
12:48
|
(6) городов может быть сколько угодно и какие угодно, и зарубежье тоже
(7) И как этим воспользоваться? (7) есть родственник, преподает географию в школе, думаете он что подскажет? |
|||
10
IUnknown
12.02.15
✎
12:50
|
это в клюшках или на снеговике?
|
|||
11
IUnknown
12.02.15
✎
12:55
|
МестноеВремя(ТекущаяУниверсальнаяДата(), ЧасовойПояс())
|
|||
12
ktvladimir
12.02.15
✎
12:57
|
По крайней мере по России можно завязать на регион
http://www.kakras.ru/doc/time-zone.html#table-time-zone |
|||
13
ktvladimir
12.02.15
✎
12:58
|
а дальше курить стандартные функции МестноеВремя, УниверсальноеВремя итд
|
|||
14
IUnknown
12.02.15
✎
12:59
|
зачем на что-то завязывать если все уже до нас придумано?
|
|||
15
LivingStar
12.02.15
✎
13:03
|
(10) БП 2.0
|
|||
16
LivingStar
12.02.15
✎
13:04
|
(11) не знаю как этим пользоваться, разницу в часах плюс, или минус все равно в справочник заносить, дополнительным реквизитом придется
|
|||
17
IUnknown
12.02.15
✎
13:05
|
(16)я тебе показал как этим пользоваться ... часовойПояс() берется от часового пояса твоего компьютера ...
|
|||
18
IUnknown
12.02.15
✎
13:06
|
то есть что-бы все работало надо только на компах где это будет работать установить правильные часовые пояса
|
|||
19
LivingStar
12.02.15
✎
13:08
|
(17) понятно, нужно поразбираться, но как определять сколько прибавить к дате времени часов или сколько отнять
компьютер сервер, там стоит операционная система, время вроде на час вперед |
|||
20
IUnknown
12.02.15
✎
13:11
|
(19)еще раз ничего прибавлять и отнимать не нужно ...
можешь просто руками на своем компе поменять часовые пояса и попробовать получить результат функцией в табло у предприятия МестноеВремя(ТекущаяУниверсальнаяДата(), ЧасовойПояс()) |
|||
21
IUnknown
12.02.15
✎
13:13
|
ТекущаяУниверсальнаяДата() - возвращает дату по Гринвичу
ЧасовойПояс() - возвращает часовой пояс МестноеВремя - функция возвращает местное время исходя из двух параметров ... время по Гринвичу ... часовой пояс |
|||
22
ktvladimir
12.02.15
✎
13:22
|
||||
23
LivingStar
12.02.15
✎
13:39
|
(21) отчет, в каждой строке практически разный город, и есть время для каждого города, свое, в своем часовом поясе, мне нужно это время для каждого города пересчитать под определенный город, пока не понял как эта функция может помочь
|
|||
24
LivingStar
12.02.15
✎
17:13
|
(20) Как ничего не нужно отнимать и прибавлять, а как узнать разницу определенного города с прочими, идущими в списке строк отчета, что бы вывести текущее время по определенному городу???
|
|||
25
LivingStar
15.02.15
✎
11:42
|
(20) что бы использовать эту функцию нужно ввести в базу разницу по времени для каждого города?
|
|||
26
LivingStar
15.02.15
✎
11:53
|
(6) как предусмотреть переход на зимнее время и обратно для зарубежных городав?
|
|||
27
Jaap Vduul
15.02.15
✎
13:11
|
https://ru.wikipedia.org/wiki/Tz_database
более подробно, но на английском http://en.wikipedia.org/wiki/Tz_database |
|||
28
ShoGUN
15.02.15
✎
13:32
|
(25) Тебе нужно (образно), сидя в Новосибирске пересчитывать всё по камчатскому времени? Или всё же просто пересчитывать всё по местному времени?
|
|||
29
LivingStar
15.02.15
✎
14:09
|
(28) есть колонка, в которой разное время, города которому принадлежит эта строка, Мне нужно, все это время, разное, перевести в новосибирское время. Есть справочник города. Пока я начал в колонку разница с новосибирском, проставлять туда часы, + или - разницу. Потом буду либо пересчитывать выводя в колонку "Время по новосибирску". Либо пробовать пользоваться функцией (20), если она поможет.
Правильный ход решения? |
|||
30
ShoGUN
15.02.15
✎
14:12
|
(29) Неверный подход. Храниться всё должно с одинаковым временем. А модификация должна быть в момент записи(приводим время к одному часовому поясу, например GMT+0) и в момент вывода(переводим время из гринвического в тот пояс, в котором нужно выводить.
|
|||
31
LivingStar
15.02.15
✎
14:24
|
(30) вам видимо это все ясно но мне не понятно, то что я ввожу в справочник каждому городу разницу с новосибирском, не верно?
Как переводить я буду если не буду знать на сколько отличается время с новосибирском? |
|||
32
LivingStar
15.02.15
✎
14:28
|
В документе хранится во времени того или иного города. Мне нужно перевести в новосибирское все это, если не вводить разницу часов в справочник от куда её брать?
Как приводить в одному часовому поясу? Зачем? Я читал что сейчас все хранится в unixtime в универсальном времени. Зачем только в него переводить? Если есть время которое нужно просто перевести в новосибирское используя разницу во времени. |
|||
33
LivingStar
15.02.15
✎
14:33
|
(30) возможно вы правы, но опять же как время введенное в формате того или иного города перевести не зная часы разницы?
|
|||
34
ShoGUN
15.02.15
✎
14:34
|
(32) Делай как знаешь. Ты в своём способе сам же запутался и просишь помощи. Тебе говорят - делай так, так проще. Нет - надо поспорить.
>Мне нужно перевести в новосибирское все это, если не вводить разницу часов в справочник от куда её брать? Документ вводится на компьютере, который имеет свои часы, которые настроены на определённый часовой пояс. Из (21) видно, что эти настройки можно получить. ПРИ ЗАПИСИ документа. |
|||
35
ShoGUN
15.02.15
✎
14:34
|
(33) Почему не зная-то? В каждом компьютере есть свои часы. При записи ты знаешь и текущее время, и часовой пояс.
|
|||
36
LivingStar
15.02.15
✎
14:35
|
(30) подскажете как переводить в (GTM+0) можно конечно, делать дополнительные поля и хранить там что угодно.
Я хочу сделать правильно по этому спрашиваю у вас. |
|||
37
LivingStar
15.02.15
✎
14:36
|
(35) если в документах записываются разные города, от куда я буду знать их время???? есть их время и название города и все, я сейчас добавляю разницу часовую с новосибирском, хотите сказать это не нужно делать?
|
|||
38
ShoGUN
15.02.15
✎
14:37
|
(36) 1С и так всё приводит к одному времени - времени сервера, вне зависимости от того, где сидит клиент.
|
|||
39
ShoGUN
15.02.15
✎
14:38
|
(37) Опиши задачу _полностью_. Мы сейчас говорим о Дате-времени документа или о каком-то времени, вводимом вручную?
|
|||
40
LivingStar
15.02.15
✎
14:38
|
(34) я не спорю, я спрашиваю, так как не понимаю.
Менеджер сидит в новосибирске, и вводит в документы разные города и время в формате этих городов понимаете???? Каким образом его переводить? Разницу я считаю нужно вносить в справочник в любом случае. Все это делается на одном сервере. |
|||
41
ShoGUN
15.02.15
✎
14:40
|
(40) Опиши задачу полностью!
|
|||
42
LivingStar
15.02.15
✎
14:41
|
(39) Это не дата документа, это дата время подачи транспорта к примеру, в разные города. Введена она во времени того города. Делается все на одном сервере. Нужно перевести эти дата время в в дату время новосибирские. Если москва, то -3, и тд....
|
|||
43
mdocs
15.02.15
✎
14:44
|
омг. нужно или не нужно, брось монетку ясности меньше не станет.
|
|||
44
LivingStar
15.02.15
✎
14:46
|
(41) я описал задачу, прозрачная? Я думаю верно задумал, но вот все равно узнаю.... Так как эти переводами дат не занимался. Но разницу то в справочник вводить в любом случае нужно так же????
Например, есть дата время Бандунг (разница с новосибирском 1), Банско (разница с новосибирском -4), Барабинск (разница с новосибирском 0) (43) Я парализован отчаянием к жизни, страхами, какой ярости (((( Я просто пытаюсь понять. Вы хотите сказать что не нужно? Как тогда то что в примере я переведу в новосибирское время, не зная разницы? В 1с нет функции, куда передавать название городов и что бы она выдавала разницу во времени!!! Так же для зарубежных городов следует учесть перевод с зимнего времени на летнее, это вообще не понятно мне (((( |
|||
45
mdocs
15.02.15
✎
14:50
|
Тебе уже сто раз описали решение, когда ты читать начнешь. - все даты хранить в одном часовом поясе, при открытии формы или при выборе города показывать часовой пояс этого города и время в чп этого города.
|
|||
46
ShoGUN
15.02.15
✎
14:50
|
(42) Бери базу из (27) и делай справочник в 1С по ней. Города - это справочник? Вот в нём делай реквизит "смещение времени". Время приводи при записи(или при вводе в поле ввода). Дальше отображай, как нужно, добавляя к хранимому времени нужное смещение.
|
|||
47
ShoGUN
15.02.15
✎
14:51
|
Учёт перевода - это сложно, задачка нетривиальная, нужно описать все тонкости всех часовых поясов.
|
|||
48
LivingStar
15.02.15
✎
14:51
|
(45) мне просто не понятно
|
|||
49
ShoGUN
15.02.15
✎
14:53
|
(48) Что именно тебе непонятно?
|
|||
50
LivingStar
15.02.15
✎
14:55
|
(46) думаете мне понятно???? и то что в (27) думаете мне понятно, первый раз вижу, дело в том что.
|
|||
51
LivingStar
15.02.15
✎
14:55
|
(46) мне не нужно время в справочник вводить, там только названия городов и все, для выбора в документ
|
|||
52
LivingStar
15.02.15
✎
14:56
|
(46) я и сделал в справочнике реквизит разница с новосибирском
|
|||
53
LivingStar
15.02.15
✎
14:59
|
есть много вопросов что мне не понятно, не понятно например как время введенное во времени города Байкальска, пусть 06:23:47 привести во время UTC например?
|
|||
54
LivingStar
15.02.15
✎
15:00
|
(53) не понятно зачем его приводить в UTC, когда я имея время во времени Байкальска смогу перевести во время Новосибирска, зная разницу во времени 2 часа. Которую я ввел в реквизит справочника города.
|
|||
55
ShoGUN
15.02.15
✎
15:05
|
(52) Не надо так делать. Это справочная информация, город в пространстве не перемещается, часовые пояса меняются довольно редко. Оператор задолбается каждый раз разницу вводить.
(53) Мне пофиг, в UTC ты его будешь приводить, в MSK, или в Новосибирское. Я говорю только о том, что в базе его надо хранить в одном и том же поясе. |
|||
56
LivingStar
15.02.15
✎
15:13
|
(55) Сейчас моя задача вводить разницу в часах в справочник, там 1991 элемент. Это делать буду я.
Почему каждый раз???? Я раз проставлю, и по этой разнеце будет пересчитываться время для новосибирска. Операторы сами вводит время, и видимо в часовом поясе города на который заводится документ. Я могу хранить. Но зачем???? Вы понимаете что я имею город и его разницу с новосибирском в часах + или -, и время в часовом поясе разных городов, которое буду переводить в новосибирское, изменяя его на установленную разницу в справочнике . Честно не пойму о чем вы и как делать по вашему. Реально не понятно просто. |
|||
57
LivingStar
15.02.15
✎
15:15
|
Я имею "время подачи транспорта" в часовом поясе какого либо города. Название города и разницу с часовым поясом новосибирска.
Этого мне достаточно что бы перевести "время подачи транспорта" в новосибирское время. Это я так понимаю решение для этой задачи. Согласен что "время подачи транспорта" можно хранить в едином формате, в каком нибудь невидимом реквизите документа. Но для чего? И как его туда переводить и зачем, не пойму. |
|||
58
ShoGUN
15.02.15
✎
15:17
|
(56) Ни хрена не понял из твоего потока сознания. Как вот это:
>мне не нужно время в справочник вводить, там только названия городов и все, для выбора в документ Соотносится вот с этим: > Сейчас моя задача вводить разницу в часах в справочник, там 1991 элемент. Это делать буду я. Если это троллинг, то очень тупой, и хочется послать тебя матом. |
|||
59
ShoGUN
15.02.15
✎
15:21
|
Хотя нет, хочется послать на курсы риторики, чтобы мысли свои поучился выражать.
|
|||
60
LivingStar
15.02.15
✎
15:26
|
(58) я хотел сказать, на (46) что пока в справочнике только города. Их названия для выбора в документ. И сейчас я буду туда проставлять числа + или -, часовая разница с новосибирском. Для пересчета. Делать это буду я и один раз. Главное заполнить раз что бы потом пересчитывать все эти значения поля "время подачи транспорта" в новосибирское время.
Заполняю по time.yandex.ru, ног для некоторых городов не нахожу нат числовой разницы по времени + или -. |
|||
61
LivingStar
15.02.15
✎
15:28
|
Добавлю возможно поле "время подачи транспорта в НСК" и буду там все хранить в одном формате, что и нужно. Но что бы мне пересчитать в этот формат, я сейчас заполняю поле справочника города разница с новосибирском. Как иначе то?
|
|||
62
ShoGUN
15.02.15
✎
15:29
|
(61) Это то, что я предлагал тебе сделать, только базу предлагал другую использовать.
|
|||
63
LivingStar
15.02.15
✎
15:31
|
(62) то есть не самому вводить разницу а где то брать? Каким образом? В 27 я прочитал что, что то там хранится на ftp и прочее. Как мне понять как использовать предлагаемую вами базу из (27)?
|
|||
64
ShoGUN
15.02.15
✎
15:38
|
(63) Если всё делать сначала, и правильно - то хранить надо не смещение, а часовой пояс(таймзону), из-за перевода часов.
К базе есть описания: http://www.iana.org/time-zones/repository/tz-link.html Её посоветовали, потому что она самая полная(видимо) и открытая. Ты волен использовать, что хочешь, понятное дело. И реализовывать как хочешь. Но и проблемы будут на твоей совести, понятное дело. |
|||
65
ShoGUN
15.02.15
✎
15:39
|
Это не далеко не самая простая задача, поверь на слово.
|
|||
66
LivingStar
15.02.15
✎
15:53
|
(64) да я реально не понимаю как это использовать, как к этому подступиться вообще?
Я же не php программист. |
|||
67
probably
15.02.15
✎
15:54
|
Автор, ну жесть же в таком возрасте и с таким опытом так тупить!
У тебя задача - сложить два числа, ты её решаешь четвертый день. Грех - зарабатывать на чужом тугодумии, но есть неуемное желание это сделать. Как тебя направить в нужное русло уже походу все отчаились. Тебе дали четкий совет: заведи справочник Города с реквизитом время по гринвичу и галкой, есть ли в этом городе переход на зимнее время. Больше тебе ничего не нужно! Дальше ты двумя арифметическими действиями получаешь нужное тебе время. Всё. Если опять споры начнуться, что надо разницу с Новосибом хранить, а не гринвич, еще раз поясню: каждый город находится в своём поясе. Справочная информация - это часовой пояс. Спроси меня сейчас разницу между Екб и Омском и я буду долго соображать, и сведется всё к тому, что я загуглю разницу между екб и гринвичем, омска и гринвича. И еще причина: завтра твой менеджер переезжает в Иркутск и всю твою систему надо переделывать |
|||
68
mdocs
15.02.15
✎
16:13
|
кроме того - автор ты программист или хрен собачий? Заполнять справочники явно не твоя работа. а вот реализовать правильно алгоритм необходимо.
|
|||
69
LivingStar
15.02.15
✎
16:18
|
(68) директор заставила заполнять, я уже уволился буквально в субботу, но, единственный выход был это отменить своё увольнение, на неопределенный срок, так как иначе жизни бы не было вообще. И вот я сижу решаю эту задачу далее.
|
|||
70
LivingStar
15.02.15
✎
16:20
|
(67) мне не понятно как хранить время по гринвичу, что это значит???? И если будет галка перевод на зимнее время, то как её пересчитывать мне тоже не понятно.
|
|||
71
LivingStar
15.02.15
✎
16:21
|
(67) реально не понимаю
|
|||
72
LivingStar
15.02.15
✎
16:22
|
(67) вы правы конечно, ваша систему будет универсальной, но как её сделать я не пойму, как сохранять время по гринвичу не пойму, и если оно будет иметься как его пересчитывать во время того или иного города?
|
|||
73
ShoGUN
15.02.15
✎
16:31
|
(72) Ещё раз, совсем правильное решение(учитывая, что города могут быть по всему миру):
Справочник Города: -Наименование -Таймзона Справочник Таймзоны: -Наименование таймзоны. -Смещение относительно Гринвича(оно же зимнее) -Переход на летнее время(Именно так, а не на зимнее, у нас тут один президент допустил эту ошибку), флаг(булево). -Смещение относительно Гринвича летнее -Момент перехода на зимнее летнее время. -Момент перехода на летнее время. Это хранится для КАЖДОЙ таймзоны, а дальше уже пишется 2 функции: ПеревестиВремяВМестное(Время, Таймзона), получает таймзону и время в гринвиче, возвращает время таймзоны. ПеревестиВремяВUTC(Время, Таймзона), получает таймзону и местное время, возвращает время по гринвичу. Готовых функций у меня нет, и они довольно сложные, особенно с учётом граничных условий. Но это самое правильное решение. |
|||
74
ShoGUN
15.02.15
✎
16:32
|
на зимнее летнее время. => на зимнее время.
|
|||
75
LivingStar
15.02.15
✎
16:32
|
что бы сохранить время по гринвичу что нужно сделать с временем того или иного города? не зная ни разницы во времени ни часового пояса??? и что потом с ним делать?
|
|||
76
LivingStar
15.02.15
✎
16:36
|
Прикольно, тут реально голову сломать можно. И если они тем более довольно сложные, то куда мне до них???? тут нужно разбираться сидеть продолжительно, искать решение.
Пока для себу вижу решение обойтись тем чем я придумал. Это проще и не универсальное решение. Но зато видимое. (73) так с ходу реально сложно, этим нужно заниматься, разбираться. Если ну будущее оставить |
|||
77
ShoGUN
15.02.15
✎
16:45
|
(76) На первых порах можно сделать так:
Справочник Города: -Наименование -Таймзона Справочник Таймзоны: -Наименование таймзоны. -Смещение относительно Гринвича(оно же зимнее) Функции те же, но в этом случае они будут сильно проще на первых порах, это будет расширяемо и можно будет дописать в будущем, добавляя поля в справочник и исправляя функции. |
|||
78
LivingStar
15.02.15
✎
16:58
|
(77) знать еще к какой зоне тот или иной город относится, все равно проставлять
смещение относительно гринвича, там число будет? |
|||
79
ShoGUN
15.02.15
✎
17:01
|
(78) Число, но со знаком. И точность - 1 знак после запятой, т.к. есть например GMT+5:30:
https://ru.wikipedia.org/wiki/Список_часовых_поясов_по_странам |
|||
80
ShoGUN
15.02.15
✎
17:02
|
(78) Ну заполнение можно автоматизировать, но базу нужно нарыть с русскими названиями городов(что проблематично).
|
|||
81
LivingStar
15.02.15
✎
17:03
|
(80) Спасибо за советы. С базой проблематично конечно!!!
|
|||
82
LivingStar
15.02.15
✎
17:05
|
пока не охватил всего решения конечно, нужно заполнять его ещё как то искать, информацию корректную
|
|||
83
ShoGUN
15.02.15
✎
17:53
|
||||
84
LivingStar
16.02.15
✎
05:33
|
(83) решил пока проставлю время новосибирское, пусть будет
потом, буду делать ваше решение, у меня все же есть не понятные моменты относительно гринвича Смещение относительно Гринвича(оно же зимнее) - это та же разница в часах??? |
|||
85
LivingStar
16.02.15
✎
07:13
|
(83) пока просто решил проставить разницу с новосибирском у городов что найду в time.yandex.ru, основная проблема конечно в том что все вводить это мне, как я понял в организации нет для этого людей просто, они все смотрят в другие стороны
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |