将日期时间转换为字符串和返回日期时间

时间:2013-05-16 06:44:37

标签: c# datetime

我遇到了将字符串转换为DateTime的麻烦。这就是我所拥有的。首先,我将当前日期转换为字符串(这将是文件夹名称)。

string dateString = string.Format("{0:yyyy-MM-dd_HH-mm-ss}", DateTime.Now);

像这样输出

  

2013-05-16_09-32-47

然后我创建一个文件夹。在程序执行期间,我得到这个文件夹,我需要将它的名称转换回DateTime。试着像这样做

DateTime directoreDate = DateTime.ParseExact(directory.Name, "0:yyyy-MM-dd_HH-mm-ss", CultureInfo.InvariantCulture);

但它会抛出FormatException。谁能告诉我为什么会这样呢。

3 个答案:

答案 0 :(得分:6)

您使用的是与原始DateTime格式相同的复合格式字符串。 ParseExact不需要这样做 - 从中​​删除0:

DateTime directoreDate = DateTime.ParseExact(directory.Name, 
                                             "yyyy-MM-dd_HH-mm-ss", 
                                             CultureInfo.InvariantCulture);

答案 1 :(得分:3)

使用

DateTime directoreDate = DateTime.ParseExact(directory.Name, "yyyy-MM-dd_HH-mm-ss", CultureInfo.InvariantCulture);

答案 2 :(得分:0)

0:移除DateTime.ParseExact,它在string.Format()中用作占位符。 用作:

DateTime directoreDate = DateTime.ParseExact(directory.Name,
                                          "yyyy-MM-dd_HH-mm-ss", 
                                           CultureInfo.InvariantCulture);