我在解析Reddit RSS提要时发现,现在是UTC时间。该服务器位于EST中。服务器位于离UTC -5小时的时区。如何将UTC时间码转换为EST?
注意:我还读到UTC并不遵循夏令时(DST),我将弄清楚以后是否通过使用日期范围来调整时差。
RSS Feed中的Reddit Item节点
<item> <title>blah blah</title> <link>http://blah.com</link> <guid isPermaLink="true">http://www.reddit.com/r/blah/comments/blah</guid> <pubDate>Sun, 16 Sep 2012 21:39:17 -0700</pubDate> <description>blah description</description> </item>
到目前为止,我想到了这一点:
DECLARE @d DATETIMEOFFSET; SET @d = 'Sep 2012 21:39:17 -07:00' DECLARE @off datetime SET @off = SWITCHOFFSET(@d, '-05:00') DECLARE @dates TABLE ( converteddate DATETIME ); insert into @dates (converteddate) Values (@off) select * from @dates
我的例子似乎是我所读内容的答案。如果您用服务器的UTC时间偏移量来偏移UTC时间,则会得到服务器的本地时间。在这种情况下,服务器为UTC -05:00
在此示例中,pubDate的节点为:
Sun, 16 Sep 2012 21:39:17 -0700
我解析Reddit RSS feed并将pubDate节点作为文本发送到SQL。我将pubDate的字符串重新格式化为:
Sep 2012 21:39:17 -07:00
我想出的存储过程:
--@pubdate was sent to SQL from web app as 'Sep 2012 21:39:17 -07:00' @pubdate varchar(50) DECLARE @d DATETIMEOFFSET; SET @d = @pubdate DECLARE @off datetime SET @off = SWITCHOFFSET(@d, '-05:00') INSERT INTO feed (pubdate) VALUES (@off)