Ale*_*akh 3 .net c# datetime datetime-format
使用可选的时间部分DateTime从一般日期格式的字符串中解析日期的正确格式是什么?("G")("d")
我可以有两种日期:
"12/13/2012 6:30:00 PM""3/29/2013"如何统一解析它们?现在我正在尝试用"G"格式解析,然后如果没有用"d"格式解析.
如果你的CurrentCulture支持MM/dd/yyyy h:mm:ss tt(我假设你LongTimePattern有h)和M/dd/yyyy(我假设你ShortDatePattern有M)作为标准日期和时间格式,使用DateTime.TryParse(String, out DateTime)方法可以解决所有的问题.
string s = "";
DateTime dt;
if (DateTime.TryParse(s, out dt))
{
// Your string parsed successfully.
}
Run Code Online (Sandbox Code Playgroud)
如果这些格式不是您的标准日期和时间格式CurrentCulture,则使用DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)重载可能是最佳选择,因为它将格式部分视为字符串数组.这意味着,您可以提供多种格式,并且您的字符串将在第一次成功匹配时进行解析.
string s = "";
string[] formats = { "MM/dd/yyyy h:mm:ss tt", "M/dd/yyyy" };
DateTime dt;
if (DateTime.TryParseExact(s, formats, CultureInfo.CurrentCulture,
DateTimeStyles.None, out dt))
{
// Your string parsed with one of speficied format.
}
Run Code Online (Sandbox Code Playgroud)
解析具有"/"自定义格式说明符的字符串时要小心.它具有特殊意义,可以用当前文化或指定的文化日期分隔符替换我.这意味着如果您CurrentCulture的DateSeparator属性不是/,即使您的字符串和格式是相同的格式,您的解析操作也会失败.
| 归档时间: |
|
| 查看次数: |
2552 次 |
| 最近记录: |