.NET DateTime.ToString() - 默认格式设置

Wes*_*s P 1 .net vb.net datetime cultureinfo date-formatting

ToString的默认格式是否依赖于与服务器相关的任何内容?这是问题:我正在测试并在我的本地机器上测试了一个应用程序,默认情况下,ToString()以"MM/dd/yyyy hh:mm:ss tt"的格式返回,但是在我们的服务器上它似乎是以"dd/MM/yyyy hh:mm:ss tt"返回,这是消费应用程序不期望并导致错误的.

Dim uvExpireDate = DateTime.Now.AddMinutes(1)
Dim token = String.Format(fmtString, uvExpireDate.ToUniversalTime().ToString(), [various other params])
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助.

Ode*_*ded 5

格式取决于服务器上定义的默认Culture.

如果您想要应用特定的文化,您需要使用一个重载来获取IFormatProvider,或设置当前线程CultureUICulture所需的文化.

InvariantCulture是一种不代表特定文化但基于的文化en-US,因此可能适合您的使用:

uvExpireDate.ToUniversalTime().ToString(CultureInfo.InvariantCulture)
Run Code Online (Sandbox Code Playgroud)

所以,整条线路将是:

Dim token = String.Format(fmtString, _ 
            uvExpireDate.ToUniversalTime().ToString(CultureInfo.InvariantCulture), _ 
            [various other params])
Run Code Online (Sandbox Code Playgroud)