【发布时间】:2013-08-02 14:47:51
【问题描述】:
DateTime.Now.ToString("Y") 回复我:2013 年 8 月
有没有一种简单的方法可以以相同的格式获取上个月的内容?
类似:DateTime.LastMonth.ToString("Y"),输出将是:2013 年 7 月
我知道这种方法不存在 :) 但也许还有其他方法可以实现该输出?或者我需要为此创建自己的方法?
【问题讨论】:
DateTime.Now.ToString("Y") 回复我:2013 年 8 月
有没有一种简单的方法可以以相同的格式获取上个月的内容?
类似:DateTime.LastMonth.ToString("Y"),输出将是:2013 年 7 月
我知道这种方法不存在 :) 但也许还有其他方法可以实现该输出?或者我需要为此创建自己的方法?
【问题讨论】:
【讨论】:
您可以使用DateTime.AddMonths()从给定日期增加或减少月份
var lastMonth = DateTime.Now.AddMonths(-1);
var lastMonthAsString = lastMonth.ToString("Y");
AddDays()、AddSeconds() 或 AddYears() 等其他时间间隔也是如此。你可以在MSDN's DateTime documentation找到所有可用的方法。
【讨论】:
使用扩展方法...也许是类似的东西...
public static string LastMonth(this DateTime dt)
{
return DateTime.Now.AddMonths(-1).ToString("Y");
}
【讨论】:
如果你想得到缩写的月份名称,你可以在下面的行中,
DateTime lastMonth = DateTime.Now.AddMonths(-1);
string Month = CultureInfo.CurrentCulture.DateTimeFormat.GetAbbreviatedMonthName(lastMonth.Month) ;
【讨论】: