【发布时间】:2017-08-28 11:05:32
【问题描述】:
我有两个网络服务器,WEB1 和 WEB2。功能:
public static string ToTimeAgoHTML(this DateTime date)
{
return "<time class=\"timeago\" datetime=\"" + date.ToString("o") + "\">" + date.FriendlyDate() + "</time>";
}
在一个值上调用。这些呈现为:
WEB1
<time class="timeago" datetime="2017-04-03T15:12:04.9072263Z">3 Apr, 2017</time>
WEB2
<time class="timeago" datetime="2017-04-03T15:12:04.9072263">3 Apr, 2017</time>
请注意,Web1 以 z 结尾,而 Web2 不这样做。这导致 Web2 上的请求显示为过去 1 小时。
在 Windows 中,两个网络服务器的时区都设置为 (UTC) Coordinated Universal Time。
有人知道这里会发生什么吗?
【问题讨论】:
-
文化是什么?
-
@Mason 两个网络服务器在 IIS 中是相同的
Invariant Language (Invariant Country) -
我会在实际线程上进行验证。检查
Thread.CurrentThread.CurrentCulture和Thread.CurrentThread.CurrentUICulture -
@Mason 两种文化在两台服务器上都是
en-US -
文化在这种情况下是无关紧要的。
"o"说明符始终与 ISO8601 对齐,后者使用 proleptic Gregorian calendar。
标签: asp.net iis-7 timezone timezone-offset