通过CultureInfo获取当前日期

本文关键字:当前日期 获取 CultureInfo 通过 | 更新日期: 2023-09-27 18:12:03

我想在我的Xamarin Forms应用程序中获得本地化日期。我尝试了两种方法,在ASP中工作得很好。. NET MVC,但我想知道为什么它们都不能在Xamarin中工作。

var currentDate DateTime.Now.ToString("yyyy/mm/dd", new CultureInfo("fa-IR"))

通过使用文化信息的日历:

var month = new CultureInfo("fa-IR").Calendar.GetMonth(DateTime.Now);

这两种方法都给出了en-US中的当前日期。

显然,PersianCalendar应该在那里。我不明白我错过了什么?

我甚至尝试了nodeatime by, SystemClock.Instance.Now.InZone(DateTimeZoneProviders.Tzdb["‌​Asia/Tehran"]).Date.‌​ToString()和日期仍然在默认文化!

最后,波斯日历Plus完成了这项工作!但如果有人能弄清楚真相,那就很有用了!

通过CultureInfo获取当前日期

。Net框架不支持波斯语日历。这种文化不接受日历;因此,在此区域性中显示DateTime是不可能的。

您需要创建一个自定义的帮助器或一些这里提到的扩展。

使用上面的扩展名,你可以这样设置,

// create an instance of culture
CultureInfo info = new CultureInfo(“fa-Ir”);
//set Persian calendar to it without get exception
info.DateTimeFormat.Calendar = new PersianCalendar();