Как я препятствую тому, чтобы DateTime включал смещение зоны в элемент SOAP xsd:dateTime?

Ваша функция не будет работать из-за псевдонимов.

double roundByCast( double d )
{
    double rounded = d;
    unsigned char* temp = (unsigned char*) &rounded;
    // changing least significant byte to be always the same
    temp[0] = 128;
    return rounded;
}

Приведение к unsigned char * для temp разрешено, поскольку приведение char * является исключением из правил наложения имен. Это необходимо для таких функций, как read, write, memcpy и т. Д., Чтобы они могли копировать значения в и из байтовых представлений.

Однако, вам не разрешено писать в temp [0], а затем предполагать, что округленное изменилось. Вы должны создать новую двойную переменную (в стеке все нормально) и memcpy temp вернуться к ней.

6
задан Joseph Bui 29 October 2008 в 18:53
поделиться

2 ответа

Я подозреваю, что Ваше значение endDate имеет Добрый набор свойств к DateTimeKind. Локальный.

Можно изменить это на DateTimeKind. Неуказанный следующим образом:

endDate = DateTime.SpecifyKind(endDate, DateTimeKind.Unspecified)

после которого я полагаю, что это будет сериализировано без смещения часового пояса.

Обратите внимание, что Вы получите DateTime с DateTimeKind. Локальный, если Вы инициализировали его использование DateTime. Теперь или DateTime. Сегодня, и DateTimeKind. UTC, если Вы инициализировали его с помощью Даты и времени. UtcNow.

4
ответ дан 17 December 2019 в 04:53
поделиться

Что Вы используете для генерации даты? При создании этого XML в коде вместо того, чтобы использовать некоторый сериализатор (WCF или XmlSerializer), Вы могли использовать Систему. Xml. XmlConvert, чтобы генерировать и интерпретировать дату следующим образом:

Создать строку, чтобы вставить XML:

DateTime startDate = DateTime.Now;
string startDateString = System.Xml.XmlConvert.ToString(startDate);

Вытащить дату из XML:

DateTime startDateFromXml = System.Xml.XmlConvert.ToDateTime(startDateString);

Если Вы запустите с двух экземпляров DateTime, которые отличаются на 37 минут и за 54 секунды перед продвижением их в XML, то они будут все еще отличаться на 37 минут и спустя 54 секунды после того, как Вы вытащите их из XML.

1
ответ дан 17 December 2019 в 04:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: