我试图了解如何yyTimezone在下面的代码中计算:
| bare_time '+' tUNUMBER {
/* "7:14+0700" */
yyDSTmode = DSToff;
yyTimezone = - ($3 % 100 + ($3 / 100) * 60);
}
| bare_time '-' tUNUMBER {
/* "19:14:12-0530" */
yyDSTmode = DSToff;
yyTimezone = + ($3 % 100 + ($3 / 100) * 60);
}
我的理解是,可以说时间戳是2011-01-02T10:15:20-04:00;这意味着它0400落后了几个小时UTC。因此,要将其转换为UTC.,您将其添加0400几个小时,它就会变为2011-01-02T14:15:20. 我的理解正确吗?
我在上面粘贴的代码块中是如何实现的?