C# 将日期时间转换为字符串并返回到日期时间

C# 将日期时间转换为字符串并返回到日期时间,c#,datetime,C#,Datetime,我在将字符串转换为DateTime时遇到问题。这是我的。首先,我将当前日期转换为字符串(这将是文件夹名称) 像这样输出 DateTime directoreDate = DateTime.ParseExact(directory.Name, "0:yyyy-MM-dd_HH-mm-ss", CultureInfo.InvariantCulture); 2013-05-16_09-32-47 然后我创建一个文件夹。在程序执行期间,我得到这个文件夹,我需要将它的名称转换回DateTime。试着这样

我在将字符串转换为DateTime时遇到问题。这是我的。首先,我将当前日期转换为字符串(这将是文件夹名称)

像这样输出

DateTime directoreDate = DateTime.ParseExact(directory.Name, "0:yyyy-MM-dd_HH-mm-ss", CultureInfo.InvariantCulture);
2013-05-16_09-32-47

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

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

但它抛出了一个例外。谁能告诉我为什么会发生这种情况。

您使用的复合格式字符串与用于格式化原始
日期时间的字符串相同。
ParseExact
不需要这样做-从中删除
0:

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

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

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

使用


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


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


在调试中,我看到了正确的目录名。如果从
ParseExact
字符串中删除“0:”,那么它是否工作?请尝试此字符串dateString=DateTime.Now.ToString(“yyyy-MM-dd HH:MM:ss”);使用System.IO.Directory.Move(@“C:\oldfolder”,@“C:\newfolder”);要更改您的董事会名称,请参见谢谢Adrian。问题已解决。在调试中,我看到了正确的目录名。如果从
ParseExact
字符串中删除“0:”,那么它是否有效?请尝试此字符串dateString=DateTime.Now.ToString(“yyyy-MM-dd HH:MM:ss”);使用System.IO.Directory.Move(@“C:\oldfolder”,@“C:\newfolder”);要更改您的董事会名称,请参见谢谢Adrian。问题解决了。
DateTime directoreDate = DateTime.ParseExact(directory.Name,
                                          "yyyy-MM-dd_HH-mm-ss", 
                                           CultureInfo.InvariantCulture);