3

可能重复:
如何在 C# 中将 DateTime 对象转换为 dd/mm/yyyy?

我是 c# 的新手,希望有人可以帮助我清理一些代码。

我有以下方法将 DateTime 转换为自定义事件字符串,例如30th of Jan 2012转换为201201(忽略日期)

public ConvertToEventDate(DateTime date)
{   
    var year = date.Year.ToString();
    var month = date.Month.ToString();
    month = month.Length == 2 ? month : "0" + month;
    return year + month;
}

我想知道是否有更好的方法来进行这种转换。

4

4 回答 4

2
public string ConvertToEventDate(DateTime date)
{ 
    return date.ToString("yyyyMM", CultureInfo.InvariantCulture);
} 

查看自定义格式字符串文档

于 2012-08-24T11:31:17.407 回答
2

我会这样做;

public string ConvertToEventDate(DateTime date)
{   
    return date.ToString("yyyyMM");
}

您也可以将其放入这样的扩展方法中;

public static class ExtenstionMethods
{
    public static string ToEventDate(this DateTime date)
    {
        return date.ToString("yyyyMM");
    }
}

然后这样称呼它;

DateTime date = new DateTime(2012, 30, 1);

    date.ToEventDate();

与此相反;

ConvertToEventDate(date);
于 2012-08-24T11:31:22.207 回答
2

其他人建议ToString("yyyyMM")基本上就在那里 - 但我建议你可能想要指定不变的文化否则,如果线程的当前文化使用非公历,您最终可能会得到一个您不期望的月/年。所以我会使用:

string text = date.ToString("yyyyMM", CultureInfo.InvariantCulture);

如果您想稍后更改确切的格式,请参阅自定义日期和时间格式字符串的文档以获取更多信息。

于 2012-08-24T11:34:28.253 回答
0

尝试

return date.ToString("yyyyMM");
于 2012-08-24T11:31:51.697 回答