Ein*_*012 2 c# asp.net datetime date
在我的本地机器系统短日期设置格式为“M/d/yyyy”。在我的 C# 代码中,我可以使用将 DateTime 转换为“dd/MM/yyyy”或“dd-MM-yyyy”格式
//1
var date=string.Format("{0:dd/MM/yyyy}", DateTime.Now) //output is:05/09/2017
//2
var date=string.Format("{0:dd-MM-yyyy}", DateTime.Now) //output is:05-09-2017
Run Code Online (Sandbox Code Playgroud)
但是,如果我将短日期的系统日期设置更改为“yyyy-MM-dd”或任何将“-”作为分隔符而不是“/”的日期格式,我将无法将日期转换为其他格式,例如
//3
var date=string.Format("{0:dd-MM-yyyy}", DateTime.Now) //output is:05-09-2017
//4
var date=string.Format("{0:dd/MM/yyyy}", DateTime.Now) //output is still :05-09-2017
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,即使我将分隔符更改为“/”,它仍然在输出中给出“-”。如何将第四个输出到“05/09/2017”。
该/字符是一个特殊的格式化字符DateTime,表示“使用指定/当前语言环境的日期分隔符”。
如果要强制使用它,则/必须通过用单引号将其括起来来转义该字符:
var date=string.Format("{0:dd'/'MM'/'yyyy}", DateTime.Now)
Run Code Online (Sandbox Code Playgroud)
var date=string.Format("{0:dd\\/MM\\/yyyy}", DateTime.Now)
Run Code Online (Sandbox Code Playgroud)
(但我发现第一种方法更具可读性。)
最后,您还可以使用双引号将其转义,但这更不可读:
var date = string.Format("{0:dd\"/\"MM\"/\"yyyy}", DateTime.Now);
Run Code Online (Sandbox Code Playgroud)
或者(正如乔恩指出的那样),您可以覆盖文化以使用/用作分隔符的文化:
var date = string.Format(CultureInfo.InvariantCulture, "{0:dd/MM/yyyy}", DateTime.Now);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2008 次 |
| 最近记录: |