5

DateTime.Now.ToString("Y")返回我:2013 年 8 月

有没有一种简单的方法可以上个月以相同的格式获得?

类似于:DateTime.LastMonth.ToString("Y")输出将是:2013 年 7 月

我知道这种方法不存在:) 但也许还有其他东西可以实现该输出?或者我需要为此创建自己的方法?

4

4 回答 4

16

为什么不使用DateTime.AddMonths

例如:

var lastMonth = DateTime.Now.AddMonths(-1).ToString("Y");`
于 2013-08-01T15:22:54.813 回答
9

您可以使用给定日期添加或减去月份DateTime.AddMonths()

var lastMonth = DateTime.Now.AddMonths(-1);
var lastMonthAsString = lastMonth.ToString("Y");

其他时间间隔(如AddDays()AddSeconds()或)也是如此AddYears()您可以在MSDN 的 DateTime 文档中找到所有可用的方法。

于 2013-08-01T15:23:33.250 回答
1

使用扩展方法...也许是类似的东西...

public static string LastMonth(this DateTime dt)
{
return DateTime.Now.AddMonths(-1).ToString("Y");
}
于 2013-08-01T15:30:15.807 回答
0

如果你想得到缩写的月份名称,你可以在下面的行中,

DateTime lastMonth = DateTime.Now.AddMonths(-1);
string Month  =     CultureInfo.CurrentCulture.DateTimeFormat.GetAbbreviatedMonthName(lastMonth.Month)    ;
于 2017-01-02T04:24:36.660 回答