将字符串日期格式化为特定格式的最佳方法是什么?
例如,如果输入是30/09/2014,它将被格式化为2014-09-30或任何其他类似的日期格式。
发布于 2014-10-01 12:51:42
首先,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或指定区域性的属性不是/,即使您的字符串和格式是相同的格式,解析操作也会失败。
这就是为什么我在我的示例中使用InvariantCulture的原因,因为它将/作为DateSeparator。
https://stackoverflow.com/questions/26141783
复制相似问题