我的工作再使用.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