C# 将日期格式化为特定格式

C# 将日期格式化为特定格式,c#,.net,datetime,C#,.net,Datetime,将字符串日期格式化为特定格式的最佳方法是什么 例如,如果输入是2014年9月30日,它将被格式化为2014年9月30日,或者前者的任何其他类似日期格式?首先,日期时间没有任何隐式格式。弦有 听起来你只需要解析你的字符串并用类似的方法格式化它 string s = "30/09/2014"; DateTime dt; if(DateTime.TryParseExact(s, "dd/MM/yyyy", CultureInfo.InvariantCulture,

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


例如,如果输入是
2014年9月30日
,它将被格式化为
2014年9月30日
,或者前者的任何其他类似日期格式?

首先,
日期时间
没有任何隐式格式。弦有

听起来你只需要解析你的字符串并用类似的方法格式化它

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
}
因为我是在上创建这个示例的,所以它只是一个扩展方法

在解析以
/
作为日期分隔符的字符串时要小心。具有用指定区域性日期分隔符的当前区域性替换我的特殊含义。这意味着,您的
CurrentCulture
或指定的区域性不是
/
,即使字符串和格式相同,解析操作也会失败


这就是我在示例中使用的原因,因为它有
/
作为
日期分隔符

首先,
日期时间
没有任何隐式格式。弦有

听起来你只需要解析你的字符串并用类似的方法格式化它

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
}
因为我是在上创建这个示例的,所以它只是一个扩展方法

在解析以
/
作为日期分隔符的字符串时要小心。具有用指定区域性日期分隔符的当前区域性替换我的特殊含义。这意味着,您的
CurrentCulture
或指定的区域性不是
/
,即使字符串和格式相同,解析操作也会失败


这就是我在示例中使用的原因,因为它具有
/
作为
日期分隔符

在DateTime对象上执行.ToString(),并指定您喜欢的格式:。但是,如果您已经在查看字符串日期,那么您应该将其转换为datetime对象,然后获得您喜欢的字符串格式。目前还不清楚您尝试了什么,或者您是否正在寻找解析和格式化建议。使用自定义格式字符串调用
DateTime.ToString
可能是您想要的…对DateTime对象执行.ToString()并指定您喜欢的格式:。但是,如果您已经在查看字符串日期,那么您应该将其转换为datetime对象,然后获得您喜欢的字符串格式。目前还不清楚您尝试了什么,或者您是否正在寻找解析和格式化建议。使用自定义格式字符串调用
DateTime.ToString
可能是您想要的…我假设您使用了linqpad?也许可以删除
.Dump()
@DavidPilkington是的,我在回答中提到过。就在示例的第一行。我假设您使用了linqpad?也许可以删除
.Dump()
@DavidPilkington是的,我在回答中提到过。就在示例下面的第一行。