Имя: Пароль:
1C
 
Формат даты и времени в xml.
,
0 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
1 kumena
 
17.07.18
15:20
и правильно ли я понимаю, что 2018-07-09T16:33:04+03:00 это
2018-07-09T19:33:04 по местному, без указания таймзоны?
2 1Сергей
 
17.07.18
15:27
(1) да
Насчет (0) не уверен, Чаще всего можно просто отбросить
3 kumena
 
17.07.18
15:31
(2) да понятно что оно не очень важно, но похоже надо не отбрасывать, а занулять, как вот тут 2018-07-09T16:33:04.0000000+03:00
Просто хотелось бы в общих чертах знать, зачем это вообще надо!
4 1Сергей
 
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
5 dezss
 
17.07.18
15:35
(1) не всегда...+03:00 в той же 1с-ке уже включается.
6 1Сергей
 
17.07.18
15:37
7 dezss
 
17.07.18
15:43
(1) сейчас почитал про это...
это не так...
2018-07-09T16:33:04+03:00 - это именно 16:33:04 по местному.

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

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

Сча копну глубже
12 dezss
 
17.07.18
16:27
(11) + не...походу, для xml надо создавать фабрику и там определять это дело...
13 dezss
 
17.07.18
16:28
(12) + всмысле, определять XDTO-пакет
14 kumena
 
17.07.18
16:40
ну вот так - у меня не получилось!

    НоваяЗаписьXML = Новый ЗаписьXML;
    НоваяЗаписьXML.УстановитьСтроку();
    НовыйСериализаторXDTO = Новый СериализаторXDTO(ФабрикаXDTO);
    НовыйСериализаторXDTO.ЗаписатьXML(НоваяЗаписьXML, Результат, НазначениеТипаXML.Явное);
15 kumena
 
17.07.18
16:41
результат - результат выгрузки запроса, там и даты есть, но +03:00 там нет.
16 kumena
 
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. "

проясняет какое время указывается.
17 kumena
 
17.07.18
16:53
я кажется начал немного вникать, вот эти вот цифры после точки, про которые я писал, называются фракциональными секундами.
•'.' s+ (if present) represents the fractional seconds
могут присутствовать, а могут и нет. т.е. действительно деление времени в течении секунды.
18 kumena
 
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.

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