我的工作再使用.NET编写现有的Java软件解决方案。在一个点上,Java解决方案在一个字符串的开始读取时间标记,只要是这样的:时间戳解析在C#
SimpleDateFormat dateFormat = new SimpleDateFormat(timeFormat);
dateFormat.setLenient(false);
try
{
timeStamp = dateFormat.parse(line);
}
catch (ParseException e)
{
//...
}
现在我试图做同样的在C#:
DateTimeFormatInfo dateTimeFormatInfo = new DateTimeFormatInfo();
dateTimeFormatInfo.FullDateTimePattern = format;
try
{
timeStamp = DateTime.Parse(line, dateTimeFormatInfo);
}
catch (FormatException ex)
{
//...
}
两种语言工作直到我在行变量中的时间戳之后添加一些随机文本。 Java会忽略它,但C#在行中的时间戳文本之后将不允许其他任何内容。
因此,尽管Java是幸福的解析 “01/01/01 01:01:01001的Hello World”作为时间戳,C#不是,因为“Hello World!”未在格式字符串中指定。
然而,正如我不能做什么可能来我的琴弦里面的时间戳之后的任何说法,我不能将其包含在我的格式字符串。
任何想法?
预先感谢您。
你能保证的日期格式将永远是文件中的一样吗?只需取该行的前N个字符并解析该字符。 – 2009-11-16 14:21:31
我可以保证日期格式是相同的,但是,您的解决方案不考虑日期格式,例如“2009年5月1日”。长度可能会大不相同。 – Callash 2009-11-16 14:24:00
不是你的问题的答案,但如果可能的话,你应该使用DateTime.TryParse而不是try ... DateTime.Parse ... catch。 http://msdn.microsoft.com/en-us/library/system.datetime.tryparse.aspx – LukeH 2009-11-16 14:25:27