我正在尝试将日志文件日期格式转换为对象dateTime
但是我找不到要转换它的字符串格式?
有人可以帮我格式化:
日志文件行: - 已于2014年12月28日开始16:53:47.48“
我的代码:
string pattern1 = @"(\d+)[/](\d+)[/](\d+)";
Match match1 = Regex.Match(lineOfLog, pattern1, RegexOptions.IgnoreCase);
if (match1.Success)
{
string dateFormat = "dd/MM/yyyy HH:mm:ss.zzz";
string dateString = match1.Groups[1].Value;
DateTime date = new DateTime();
try
{
date = DateTime.ParseExact(dateString, dateFormat, CultureInfo.InvariantCulture);
}
catch
{
}
}
例外:“字符串未被识别为有效日期时间
答案 0 :(得分:6)
这里有三个问题:
zzz
时,FF
为百分之一,FFF
为千尝试这样的事情:
string lineOfLog = "- Started 28/12/2014 16:53:47.48";
string dateFormat = "dd/MM/yyyy HH:mm:ss.FF";
string pattern1 = @"(\d+)/(\d+)/(\d+) (\d+):(\d+):(\d+)\.(\d+)";
Match match1 = Regex.Match( lineOfLog, pattern1, RegexOptions.IgnoreCase );
if( match1.Success )
{
var dateString = match1.Value; // note the change here
var d = DateTime.ParseExact( dateString, dateFormat, CultureInfo.InvariantCulture );
}
请注意,您可以完全省略()
,它们确实没有任何好处,但它们确实使正则表达式更容易阅读(恕我直言)。