服务器上的日期格式不同

时间:2015-07-04 13:04:36

标签: c# asp.net datetime

当我执行下面的代码时,我的日期格式为@model dynamic ,这正是我想要的。

但是当我在另一个服务器上执行相同的代码时,我的日期为04-07-2015。为什么呢?

以下是我在pageload上的代码:

7/4/2015

3 个答案:

答案 0 :(得分:5)

ToShortDateString方法使用CurrentCulture设置的ShortDatePattern property

可能您的服务器具有不同的区域设置,这就是为什么在运行此代码时,您会得到DateTime的不同字符串表示形式。

如果您想在两台服务器中获得相同的表示,请在区域和语言设置中的两台服务器上设置相同的文化,或使用custom date and time format specifiers之类的;

TxtIndate.Value = DateTime.Now.ToString("dd-MM-yyyy");

或作为Matt mentioned的更好方式,使用InvariantCulture字符串格式,如;

TxtIndate.Value = DateTime.Now.ToString("dd-MM-yyyy", CultureInfo.InvariantCulture );

答案 1 :(得分:1)

从c#代码来看,相同的代码似乎不可能产生两种不同的时间格式。所以据我所知,我们必须在其他地方找到它。

可能混淆的来源是HTML输出中两种不同类型的input控件。一个type=text,一个type=date可以解释不同的格式,因为HTML 5日期控件呈现的方式不同。因此,一个日期是服务器格式化的值,另一个是浏览器,可能是客户端文化,格式化值。

答案 2 :(得分:1)

正如其他海报所说,这是由于不同的文化。

如果具有相同的日期格式很重要(警告,用户希望以他们习惯的文化形式查看日期),那么您始终可以明确地设置日期。

var myCultureDateFormat = new CultureInfo("en-US").DateTimeFormat;

// Short date string
var shortDate = DateTime.Now.ToString(myCultureDateFormat.ShortDatePattern);

// Long date string
var longDate = DateTime.Now.ToString(myCultureDateFormat.LongDatePattern);

快乐的编码!