转换DateTime

时间:2012-08-24 11:29:51

标签: c# datetime-format

  

可能重复:
  How to convert DateTime object to dd/mm/yyyy in C#?

我是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 个答案:

答案 0 :(得分:2)

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

查看custom formatting strings docs

答案 1 :(得分: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");
    }
}

然后把它叫做ike this;

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

    date.ToEventDate();

与此相反;

ConvertToEventDate(date);

答案 2 :(得分:2)

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

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

如果您想稍后更改确切的格式,请参阅custom date and time format strings的文档以获取更多信息。

答案 3 :(得分:0)

尝试

return date.ToString("yyyyMM");