由于文件名提供的限制,将日期时间写入文件名然后将其读回到.net中的日期时间的最简单方法是什么?
答案 0 :(得分:2)
简单地说:
DateTime original = DateTime.Today;
string s = original.ToString("yyyyMMdd", CultureInfo.InvariantCulture);
DateTime dt = DateTime.ParseExact(s, "yyyyMMdd", CultureInfo.InvariantCulture);
(显然与文件名的其余部分结合......根据需要增加更多精度 - 小时,分钟等)
答案 1 :(得分:2)
编辑:不幸的是原始格式使用冒号,不能在Windows文件名中使用冒号。这是一个真正的耻辱,因为它是理想的。在那种情况下,我会去:
yyyy-MM-dd`T`HH-mm-ss
(如果需要,可用毫秒)。我不知道任何文化是否对这些领域使用任何异常。这将是非常令人惊讶的,但你应该使用CultureInfo.InvariantCulture
来确定。
我喜欢在那里使用破折号 - 当你查看文件列表时,它更容易解析。
编辑:原始答案
我建议您使用's'标准格式字符串给出的可排序日期/时间格式模式,例如:
Console.WriteLine(DateTime.UtcNow.ToString("s"));
打印的内容如下:
2009-04-08T06:45:43
人们很容易解析,计算机很容易解析,不依赖于文化,并且可以适当地进行排序。