Return Datetime.Day 在波斯文化中由 c#
Return Datetime.Day in persian culture by c#
我打算 return 在 波斯文化 中的 月中的某一天 。我已经设置了文化并且效果很好。显示的日期是波斯日历。但是我需要在某处检查一个月中的确切日期,
例如今天是 2018-2-3,波斯历是 1396-11-14,
var date = DateTime.Now
向我展示了正确的波斯历日期时间。但是
var date = DateTime.Now.Day
显示 3 而不是 14。 我需要 14!我知道我可以将它更改为字符串并得到一天,但它使我的代码变得很脏,我对这种方式不太感兴趣,因为我在程序的许多部分都使用了它。
有什么办法吗?
我想澄清一些事情。
一个 DateTime
实例在公历上 总是 无论如何。令人惊讶的是,it has a few constructors 将 Calendar
作为参数,但我认为此参数不会影响 任何 关于在内部将其保持为公历等价物。
如果您想在 特定 日历中获取 DateTime 的某些部分,您需要将该 DateTime 实例作为 GetXXX
方法的参数调用 that 日历实例。
例如;
var today = DateTime.Today;
var persian = new PersianCalendar();
Console.WriteLine(persian.GetDayOfMonth(today)); // 14
这里是demonstration.
您将尝试此代码。
CultureInfo info = new CultureInfo("fa-Ir");
info.DateTimeFormat.Calendar = new PersianCalendar();
string day= "";
Thread.CurrentThread.CurrentCulture = info;
day= DateTime.Now.ToString("dd");
我打算 return 在 波斯文化 中的 月中的某一天 。我已经设置了文化并且效果很好。显示的日期是波斯日历。但是我需要在某处检查一个月中的确切日期,
例如今天是 2018-2-3,波斯历是 1396-11-14,
var date = DateTime.Now
向我展示了正确的波斯历日期时间。但是
var date = DateTime.Now.Day
显示 3 而不是 14。 我需要 14!我知道我可以将它更改为字符串并得到一天,但它使我的代码变得很脏,我对这种方式不太感兴趣,因为我在程序的许多部分都使用了它。 有什么办法吗?
我想澄清一些事情。
一个 DateTime
实例在公历上 总是 无论如何。令人惊讶的是,it has a few constructors 将 Calendar
作为参数,但我认为此参数不会影响 任何 关于在内部将其保持为公历等价物。
如果您想在 特定 日历中获取 DateTime 的某些部分,您需要将该 DateTime 实例作为 GetXXX
方法的参数调用 that 日历实例。
例如;
var today = DateTime.Today;
var persian = new PersianCalendar();
Console.WriteLine(persian.GetDayOfMonth(today)); // 14
这里是demonstration.
您将尝试此代码。
CultureInfo info = new CultureInfo("fa-Ir");
info.DateTimeFormat.Calendar = new PersianCalendar();
string day= "";
Thread.CurrentThread.CurrentCulture = info;
day= DateTime.Now.ToString("dd");