Seb*_*Seb 3 .net c# visual-studio-2005
我正在尝试为一个来自世界各地的客户可以使用的项目制作一个小应用程序.我遇到的问题是,后端是利用获取生成并上传到共享网络,并在我存储日期时间变量,它说,当一个特定的任务开始和完成这些XML文件的XML文件的设置.程序在某些加载间隔崩溃,格式异常,经过一些研究后我发现我需要设置一个区域日期时间解析器.
我有现在的问题是我如何转换的时间在XML文件中,无论是使用美国,澳洲或英国的区域设置,并将其使用在客户端的本地设置.这是使用VS C#2005和.NET 3.5框架完成的.
在此先感谢您的帮助.
后端应该以标准格式书写.XML不应该只使用本地日期格式 - 这就是疯狂所在.XML的要点是成为计算机的交换格式,而不是人类的交换格式.除非您为人类消费格式化某些内容,否则不应使用本地变体.
因此,要么在任何地方使用特定格式,在格式化时指定CultureInfo.InvariantCulture,要么使用dt.ToString("o")或另一种不受文化不变的格式字符串.
如果您只是谈论某个时间点(即本地时间无关紧要,只是全球瞬间),您还应该确保使用一致的时区,其中UTC是显而易见的选择.例如,使用DateTime.UtcNow而不是DateTime.Now.
一旦你已经得到了一代代码做明智的事情,消费应该是非常简单的.
但是,如果你没有改变代码的奢侈品,你可能不得不求助于传递正确的CultureInfo进入DateTime.TryParseExact.但是,这意味着您需要知道用于创建文件的文化.如果文件是以文化敏感的方式生成的,并且您不知道他们正在使用哪种文化,那么您基本上就会被填充.例如,03/05/2010可能意味着2010年3月5日或2010年5月3日.如果没有更多信息,您无法决定使用哪个.