我是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;
}
我想知道是否有更好的方法进行此转换。
答案 0 :(得分:2)
public string ConvertToEventDate(DateTime date)
{
return date.ToString("yyyyMM", CultureInfo.InvariantCulture);
}
答案 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");