将日期格式化为特定格式

本文关键字:定格 格式 日期 格式化 | 更新日期: 2023-09-27 18:25:10

将字符串日期格式化为特定格式的最佳方法是什么?

例如,如果输入是30/09/2014,它将被格式化为2014-09-30或任何其他类似的日期格式?

将日期格式化为特定格式

首先,DateTime没有任何隐式格式。字符串有。

听起来你只需要解析你的字符串,并用DateTime.ToString()方法格式化它,比如;

string s = "30/09/2014";
DateTime dt;
if(DateTime.TryParseExact(s, "dd/MM/yyyy", CultureInfo.InvariantCulture,
                          DateTimeStyles.None, out dt))
{
    dt.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture).Dump();
    // Result will be 2014-09-30
}

由于我在LINQPad上创建了这个示例,.Dump()只是一个扩展方法。

解析以/作为日期分隔符的字符串时要小心。"/"自定义格式说明符具有的特殊含义,请将我替换为指定区域性日期分隔符的当前区域性。这意味着,如果您的CurrentCulture或指定区域性的DateSeparator属性不是/,则如果字符串和格式相同,则解析操作将失败。

这就是我在示例中使用InvariantCulture的原因,因为它将/作为DateSeparator