Описание esriFieldTypeDate?

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Ответить
Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Описание esriFieldTypeDate?

Сообщение Boris »

Кто-нибудь поскажет как из esriFieldTypeDate получить дату и время? Ну или где посмотреть описание формата
LOADDATE (Type: esriFieldTypeDate, Alias: Дата обновления, Length: 36 )
Описание взято отсюда http://maps.rosreestr.ru/ArcGIS/rest/se ... apServer/0
Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

Re: Описание esriFieldTypeDate?

Сообщение novia »

целые числа - дни от 01.01.1901 (в общем, как в Экселе), после запятой - время суток (подозреваю, что в долях от 24 часов). попробуйте пересчитать несколько значений дат + время в поле типа double - сразу станет понятно, откуда там ноги растут

*поправка дни от 30.12.1899
Последний раз редактировалось novia 28 мар 2012, 08:59, всего редактировалось 1 раз.
понравилось? жми палец вверх :!:
Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Описание esriFieldTypeDate?

Сообщение Дмитрий Барышников »

Чего-то я сомневаюсь, что там время пишется
http://edndoc.esri.com/arcobjects/9.2/c ... ldtype.htm
Вот как можно просто получить дату\время

Код: Выделить всё

CComVariant var;
hr = ipRow->get_Value(lCol,&var);
COleDateTime time;
time = var.date;
Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

Re: Описание esriFieldTypeDate?

Сообщение novia »

пример, описанный выше.
значения присвоены полю дата с помощью калькулятора, присвоением значений друго заполненного поля
время хранится в долях суток
дата - целая часть числа в днях 30.12.1899
demo_date.jpg
demo_date.jpg (77.27 КБ) 6988 просмотров
понравилось? жми палец вверх :!:
Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Описание esriFieldTypeDate?

Сообщение Boris »

Обзор интернета с подстановкой известных чисел (13-ти значных) показал, что это дата-время в миллисекундах от начала "эпохи Юникса". Цитата из http://www.life-prog.ru/view_zam.php?id ... t=8&page=5
Если параметр par представлен в числовом формате, он трактуется как число миллисекунд, прошедших с полуночи 1 января 1970 года по Гринвичу.
т.е 1326153600000 = 10.01.2012

Код: Выделить всё

"attributes" : {
        "OBJECTID" : 128678417,
        "PARCELID" : "502900303030186205",
        "FULLADDRESS" : "Московская область, Воскресенский район, д. Золотово, ул. Советская, уч. \u2116 120",
        "STATECODE" : "05",
        "FULLNUMBER" : "50:29:0030303:1862",
        "RAIONID" : "5029",
        "LOADDATE" : 1326412800000,
        "PARCEL_ID" : "50:29:30303:1862"
      }
PS
Ответ найден. Теперь вопрос - когда закончиться шкала доступных значений? И сколько осталось государству российскому?

PPS
От еще одной цитаты не удержусь:
Не стоит бояться того, что с приближением к 2038 году ваш софт перестанет работать. Во-первых, до этого времени вашим софтом, скорее всего, просто перестанут пользоваться (особенно версиями, которые пишутся сейчас). Во-вторых, с приближением к этой дате разработчики MySQL обязательно что-нибудь придумают для сохранения работоспособности вашего софта. Все решится так же хорошо, как проблема Y2K.
Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

Re: Описание esriFieldTypeDate?

Сообщение novia »

с таким форматом (от 1970) работают например, веб-приложения на flex

однако, все же значения в esriTypeDate хранятся показанным на картинке образом, т.к. экселевские даты без искажений отправляются в аргис, а там начало не в 1970 году (проверьте сами)

ArcGIS Web API кстати умеют правильно обрабатывать даты при редактировании атрибутов, то есть тот же flex будет хранить в приложении время в миллисекундах от 1970, а писать в базу аркгиса значение от 1899 года
понравилось? жми палец вверх :!:
Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Описание esriFieldTypeDate?

Сообщение Boris »

Не могу спорить о том, что лежит внутри. Я говорю только про то, что вижу снаружи при обращении к серверу ESRI. Формат данных указан в вопросе, данные приведены постом выше. На плавающую точку не похоже... Length: 36 то же как-то сразу не увидать...
Ну а остальное, мои абсолютно необоснованные предположения.
В любом случае точность в милисекунды в кадастре? А если бы у нас история участков велась от Рюрика?
Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

Re: Описание esriFieldTypeDate?

Сообщение novia »

В любом случае точность в милисекунды в кадастре? А если бы у нас история участков велась от Рюрика?
не думаю (точнее уверен что не хранят), что они хранят доли суток в этом поле. то есть они вполне обходятся целыми значениями.
участки по 2 раза в день у нас вроде не межуют)

технически сервер ArcGIS может хранить доли суток, может быть и до миллисекунд (насколько хватит точности double для хранения доли суток). фактически мазохизмом, я думаю, никто не занимается и хранят все же не такое "подробное" время.
формат данных создавался для хранения любого времени, а не только даты внесения учасков в кадастр, поэтому вполне ожидаемо, что вы видите хвост из нулей в этих значениях

то, что вы видите снаружи это, как я понимаю, JSON ответ от запроса к ArcGIS Server, а так как это JSON, то и приводится значение даты к формату интернет API - то есть тем самым миллисекундам.
понравилось? жми палец вверх :!:
Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Описание esriFieldTypeDate?

Сообщение Boris »

novia писал(а): то, что вы видите снаружи это, как я понимаю, JSON ответ от запроса к ArcGIS Server, а так как это JSON, то и приводится значение даты к формату интернет API - то есть тем самым миллисекундам.
Очень может быть, но JSON то тут каким боком задействован? Он же формат. В других местах того же сервера это поле возвращается в формате мм/дд/гггг. Вот и пришлось ум напрягать, что бы понять - это дубль или дополнительная информация том, что атрибутика и вектор имеют разную актуальность.
Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

Re: Описание esriFieldTypeDate?

Сообщение novia »

С json действительно ошибся) это один из фоматов, в котором иожно получить ответ.
Но в любом случае, видимо хранение информации и ответы сервера в данном случае с датой используют разные форматы.

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

[ Сообщение с мобильного устройства iPad ] Изображение
понравилось? жми палец вверх :!:
Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

Re: Описание esriFieldTypeDate?

Сообщение novia »

Там еще есть подводный камень, в случае, когда значение в базе и в веб-приложении относятся к разному часовому поясу и надо перед записью делать поправку, чтобы в случае пояса москвы не промахнуться на 4 часа назад)

[ Сообщение с мобильного устройства iPad ] Изображение
понравилось? жми палец вверх :!:
Ответить

Вернуться в «ArcGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей