Вход | Регистрация


Формат даты и времени в xml.

Формат даты и времени в xml.
Я
   kumena
 
17.07.18 - 15:16
Здравствуйте!

Есть дата из файла xml - 2018-07-09T16:33:04.6396109+03:00
Может кто-то прояснить, что означают цифры после точки .6396109 ,какая то отметка точного момента времени?

и как правильно устанавливать дату в xml, встречался еще с форматами
2018-07-09T16:33:04+03:00 и 2018-07-09T16:33:04.0000000+03:00
 
 
   kumena
 
1 - 17.07.18 - 15:20
и правильно ли я понимаю, что 2018-07-09T16:33:04+03:00 это
2018-07-09T19:33:04 по местному, без указания таймзоны?
   1Сергей
 
2 - 17.07.18 - 15:27
(1) да
Насчет (0) не уверен, Чаще всего можно просто отбросить
   kumena
 
3 - 17.07.18 - 15:31
(2) да понятно что оно не очень важно, но похоже надо не отбрасывать, а занулять, как вот тут 2018-07-09T16:33:04.0000000+03:00
Просто хотелось бы в общих чертах знать, зачем это вообще надо!
   1Сергей
 
4 - 17.07.18 - 15:34
(3) для точности. Например в SQL иногда нужна сортировка в пределах одной секунды.
Правда, скуль понимает только до 3-знаков после запятой и кратно 7

https://docs.microsoft.com/ru-ru/sql/t-sql/data-types/datetime-transact-sql?view=sql-server-2017
   dezss
 
5 - 17.07.18 - 15:35
(1) не всегда...+03:00 в той же 1с-ке уже включается.
   1Сергей
 
6 - 17.07.18 - 15:37
   dezss
 
7 - 17.07.18 - 15:43
(1) сейчас почитал про это...
это не так...
2018-07-09T16:33:04+03:00 - это именно 16:33:04 по местному.

А вот в таймзоне +00:00 это будет 13:33:04...т.е. +3 должно вычитаться
   DrShad
 
8 - 17.07.18 - 15:55
а еще есть американское представление даты и японское )))
   kumena
 
9 - 17.07.18 - 15:59
> не всегда...+03:00 в той же 1с-ке уже включается.

у меня сериализатор дату пишет 2018-07-09T16:33:04
где и что надо включить, чтобы включалось с +3 часа?
   kumena
 
10 - 17.07.18 - 16:02
причем может даже и без отделения времени через Т, я уже не помню. Может 1с автоматически сформировать строку с временем для xml? я по крайней мере такого форматирования не нашел.
 
 Рекламное место пустует
   dezss
 
11 - 17.07.18 - 16:22
(9) хм...я делал в json, там был формат даты...а в xml он:
Дата - XML представление соответствует представлению типа dateTime схемы XML (см. http://www.w3.org/TR/xmlschema-2/#dateTime);

Сча копну глубже
   dezss
 
12 - 17.07.18 - 16:27
(11) + не...походу, для xml надо создавать фабрику и там определять это дело...
   dezss
 
13 - 17.07.18 - 16:28
(12) + всмысле, определять XDTO-пакет
   kumena
 
14 - 17.07.18 - 16:40
ну вот так - у меня не получилось!
    НоваяЗаписьXML = Новый ЗаписьXML;
    НоваяЗаписьXML.УстановитьСтроку();
    НовыйСериализаторXDTO = Новый СериализаторXDTO(ФабрикаXDTO);
    НовыйСериализаторXDTO.ЗаписатьXML(НоваяЗаписьXML, Результат, НазначениеТипаXML.Явное);
   kumena
 
15 - 17.07.18 - 16:41
результат - результат выгрузки запроса, там и даты есть, но +03:00 там нет.
   kumena
 
16 - 17.07.18 - 16:47
если я правильно понял, фраза
"For example, 2002-10-10T12:00:00-05:00 (noon on 10 October 2002, Central Daylight Savings Time as well as Eastern Standard Time in the U.S.) is 2002-10-10T17:00:00Z, five hours later than 2002-10-10T12:00:00Z. "

проясняет какое время указывается.
   kumena
 
17 - 17.07.18 - 16:53
я кажется начал немного вникать, вот эти вот цифры после точки, про которые я писал, называются фракциональными секундами.
•'.' s+ (if present) represents the fractional seconds
могут присутствовать, а могут и нет. т.е. действительно деление времени в течении секунды.
   kumena
 
18 - 17.07.18 - 17:46
> 2018-07-09T16:33:04+03:00 - это именно 16:33:04 по местному.

вы не правы, причем все написано по вашей ссылке из 11 поста.

When a timezone is added to a UTC dateTime, the result is the date and time "in that timezone". For example, 2002-10-10T12:00:00+05:00 is 2002-10-10T07:00:00Z and 2002-10-10T00:00:00+05:00 is 2002-10-09T19:00:00Z.

т.е. если время с указанием часового пояса, то исходное дата время - это дата и время по Гринвичу, а чтобы получилось местное время, нужно принять поправку на часовой пояс.
Спасибо за ссылку! )

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует