.NET:一台计算机上的日期时间设置不同

.NET:一台计算机上的日期时间设置不同,.net,datetime,locale,culture,cultureinfo,.net,Datetime,Locale,Culture,Cultureinfo,我在一台机器上启动了两个应用程序(网站和桌面应用程序),它们都使用以下方法序列化DateTime对象值: string strDateTileFullFormat = Thread.CurrentThread.CurrentCulture .GetConsoleFallbackUICulture().DateTimeFormat.FullDateTimePattern; string SummarySupporyUntil = string.Concat("until ",

我在一台机器上启动了两个应用程序(网站和桌面应用程序),它们都使用以下方法序列化DateTime对象值:

string strDateTileFullFormat = Thread.CurrentThread.CurrentCulture
    .GetConsoleFallbackUICulture().DateTimeFormat.FullDateTimePattern;

string SummarySupporyUntil = string.Concat("until ",
     TestLicenseExpiryDate.ToString(strDateTileFullFormat));
一个应用程序创建: “2011年12月31日星期六上午12:00:00”, 另一个: “2011年12月31日12:00:00 AM”

不同之处在于,一个使用“加拿大”国家设置,另一个使用“美国”

问题是我需要这些日期相似(实际上,我不知道哪一种是正确的,也许是第一种)

我查看了web/app.config文件,但没有看到任何与区域设置相关的内容。另外,我没有对CurrentCulture进行手动更改


请告知。谢谢

一旦确定了最适合您的区域性,您就可以使用System.DateTime强大的格式功能,如文档中所述:具有固定区域性:

例如,对于en US文化(1033):


将在运行它的每台机器上给出相同的结果。

序列化格式本身是否有日期时间的标准格式(例如XML)?如果是这样的话,接受这种格式可能是个好主意。如果不是,考虑使用其他标准而不是本地格式,例如。
string SummarySupporyUntil = string.Concat("until ",
     TestLicenseExpiryDate.ToString(strDateTileFullFormat, new Culture(1033)));