我正在从服务调用接收数据,并希望确保字符串的格式正确,如:
2015-Nov-19
Run Code Online (Sandbox Code Playgroud)
我试图使用格式的解析函数yyyy-mmm-dd,但它也允许日期2015-11-19.我该怎么办?
您需要使用MMM符,而不是mmm用英语基础的类似文化InvariantCulture.没有mmm自定义日期和时间说明符.
如果你想解析多种格式,DateTime.TryParseExact具有过载是需要string[]的放慢参数,所以你可以提供多种格式.
string s = "2015-Nov-19"; // or 2015-11-19
DateTime dt;
string[] formats = {"yyyy-MMM-dd", "yyyy-MM-dd"};
if(DateTime.TryParseExact(s, formats, CultureInfo.InvariantCulture,
DateTimeStyles.None, out dt))
{
// Successfully parse
}
Run Code Online (Sandbox Code Playgroud)
我MM在第二种格式中使用了说明符,但如果您的单个数字月份没有前导零,则需要使用M说明符.
使用 DateTime.TryParseExact
DateTime dt;
string[] formats = { "yyyy-MMM-dd"};
if (!DateTime.TryParseExact(dateValue, formats,
System.Globalization.CultureInfo.InvariantCulture,
DateTimeStyles.None, out dt))
{
//your condition fail code goes here
return false;
}
else
{
//success code
}
Run Code Online (Sandbox Code Playgroud)