将日期格式化为特定格式
本文关键字:定格 格式 日期 格式化 | 更新日期: 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
。