2013-05-16 156 views
1

我在将字符串转换为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。有谁能告诉我为什么会发生这种情况。

+0

在调试我看到正确的目录名。 – Frigik

+0

如果您从“ParseExact”字符串中删除“0:”,它会工作吗? – Adrian

+0

试试这个字符串dateString = DateTime.Now.ToString(“yyyy-MM-dd HH:mm:ss”); 使用System.IO.Directory.Move(@“C:\ oldfolder”,@“C:\ newfolder”);更改您的目录名称 –

回答

6

您正在使用用于格式化原始DateTime的相同组合格式字符串。这不需要ParseExact - 降0:从中:

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

使用

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

DateTime.ParseExact删除0:,它被用来作为string.Format()一个占位符。 用途为:

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