我在表中有一个项目并更新了一些列值并将其更新到数据库中。 但是为什么这个Datetimeoffset列会自动更改为另一个时区?
request.service.tables.getTable('Ticket')
.where({ id: ticketId }).read({
systemProperties: ['__createdAt', '__updatedAt'],
success: function (result) {
if (result.length === 0) {
console.log("ticket does not exist");
response.send(statusCodes.NOT_FOUND, { message: "ticket does not exist" });
}
//Exists; update it
else {
// do update some column
//...
//...
request.service.tables.getTable('Ticket').update(result[0]);
}

答案 0 :(得分:1)
基本上,DateTimeOffset值在服务器端被解释为JavaScript Date对象,因此它们没有关于偏移的任何信息(在JS日期中表示为自“Unix 0”以来的数毫秒,1970 / 01/01:00:00:00 UTC)结果是偏移在翻译中丢失了,这是一个问题 =>因此,日期时间偏移列应采用UTC格式。
我找到了一篇关于此问题的帖子: https://blogs.msdn.microsoft.com/carlosfigueira/2013/05/13/preserving-date-time-offsets-in-azure-mobile-services/
答案 1 :(得分:1)
您可以看到实际时间值是等效的,第一个包含时区偏移量。您应该能够在客户端上调用ToLocalTime以将日期调整回本地时间(或者等效于您的客户端平台)。