需要使用TryParse将dd.MM.yyyy解析为DateTime

Cap*_*mic 21 .net c# datetime

我需要将字符串解析为DateTime.该字符串始终采用以下格式

"10.10.2010"这意味着dd.MM.yyyy,用点分隔.

我想使用DateTime.TryParse或任何其他方法.请建议.

UPDATE

更新了问题.我只是在寻找实现目标的正确方法.不是手动解析

Jon*_*eet 47

TryParse不允许您指定格式 - 但您可以使用TryParseExact:

DateTime date;
if (DateTime.TryParseExact(text, "dd'.'MM'.'yyyy",
                           CultureInfo.InvariantCulture,
                           DateTimeStyles.None,
                           out date))
{
   // Success
}
else
{
   // Parse failed
}
Run Code Online (Sandbox Code Playgroud)

请注意,点不一定要使用引号进行转义,但我个人喜欢将任何文字文本放在引号中以确保它不会被更改.这是个人偏好的事情 - 如果你愿意,你当然可以使用"dd.MM.yyyy".

同样地,我已经指定了不变文化,这是我通常为固定的自定义风格所做的 - 但如果你愿意,你可以使它使用当前的文化或特定的其他文化.当你使用自定义样式(而不是像"长日期"这样的标准样式)时,不太可能产生任何差异.


Luk*_*keH 7

使用TryParseExact方法:

DateTime parsed;
if (DateTime.TryParseExact(yourString, "dd'.'MM'.'yyyy",
    CultureInfo.CurrentCulture, DateTimeStyles.None, out parsed))
{
    // success
}
Run Code Online (Sandbox Code Playgroud)


小智 5

巴西编解码器

public static bool IsDateTime(string txtDate)
{
   DateTime tempDate;

   return DateTime.TryParseExact(txtDate,"dd/MM/yyyy",
                                 new CultureInfo("pt-BR"),
                                 DateTimeStyles.None, out tempDate);
}
Run Code Online (Sandbox Code Playgroud)