我遇到了将字符串转换为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 :(得分: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);