2017-04-04 57 views
1

我正在处理一个错误日志清理它,然后输出它并将文本文件放入机器学习中,因此文本文件中的日期需要位于以下格式:“yyyy-MM-dd HH:mm:ss”,目前日期如下:Wed Oct 29 13:36:08 2014年。如何重新格式化文本文件中的日期C#

我在格式化日期的访问日志中有类似的情况,但是在这个时间过后的一年,这使我很难格式化,任何人都可以提出任何可行的方案?

cleanArray[3]以下列格式保存日期和时间:Wed Oct 29 14:01:02 2014.您可以看到我已经评论过尝试对其格式进行重新设置,但我很难理解今年的情况。提前致谢!!

+0

我不确定我是否理解这个问题。您已经编写了如何将一种数据格式转换为其他格式。有什么问题? – mateuszlewko

+0

我想一个更好的方法是将'Wed Oct 29 14:01:02 2014'格式化为“yyyy-MM-dd HH:mm:ss”。 – Michael

+0

Well'Wed Oct 29 14:01:02 2014'格式为'ddd MMM dd HH:mm:ss yyyy',所以你可以从'ParseExact'和'ToString(“yyyy-MM-dd HH:mm: ss“);' – Equalsk

回答

1

你的代码很好,你刚刚错过了你的ParseExact格式的dd。顾名思义,格式必须准确。

// Get date string e.g. 'Wed Oct 29 14:01:02 2014' 
var dateString = cleanArray[3]; 

// See the 'dd' for the day 
var date = DateTime.ParseExact(dateString, "ddd MMM dd HH:mm:ss yyyy", CultureInfo.InvariantCulture); 

// Output to desired format 
var newDateString = date.ToString("yyyy-MM-dd HH:mm:ss"); 

// Replace value in array 
cleanArray[3] = newDateString; 
1

所以你几乎是正确的。 试试这个代码解析成所需的格式:

var date = DateTime.ParseExact("Wed Oct 29 14:01:02 2014", "ddd MMM dd HH:mm:ss yyyy", CultureInfo.InvariantCulture); 
var newDateString = date.ToString("yyyy-MM-dd HH:mm:ss"); 
Console.WriteLine(newDateString); 

你忘了你的格式字符串约dd一部分。

相关问题