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

本文关键字:日期 时间 串并 返回 字符串 转换 字符 | 更新日期: 2023-09-27 18:13:43

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

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

输出如下

2013 - 05 - 16 - _09 - 32 - 47

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

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

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

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

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

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

使用

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

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

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