在我的ASP.NET应用程序中,我使用代码from here来查找应用程序的构建日期为UTC。从汇编文件读取的UTC值的格式如下:
//DateTime time
return time.ToString("dd MMM yyyy HH:mm:ss");
现在,一个用户打开该应用程序提供的页面并看到
28 сен 2012 04:13:56
并通知打开同一页面并看到
的其他用户27 Sep 2012 12:14:32
这两个请求都是由部署在同一个软件包中清理Windows Azure VM的同一个应用程序提供的,因此对两个用户运行的代码肯定是完全相同的。
显然,由于来自不同用户的请求的本地化不同,字符串的格式也不同。一位用户将月份显示为Sep
,另一位用户将其视为сен
(相当于俄语中的Sep
)。
为什么小时数不同?它们是否也根据某些依赖于本地化的时区进行了调整?
答案 0 :(得分:3)
最明显的解释是DateTime
值实际上是不同的。
您关联的代码使用GetCallingAssembly
,您应该注意MSDN says:
如果调用GetCallingAssembly方法的方法由实时(JIT)编译器内联展开,或者其调用者是内联展开的,则GetCallingAssembly返回的程序集可能会意外地出现差异
要调试这个,我首先要显示time.Ticks
和time.Kind
:如果这些是相同的,你知道这是一个显示问题。如果它们不同,您需要了解如何生成时间值。