通过CultureInfo获取当前日期

时间:2016-10-08 04:01:47

标签: c# xamarin xamarin.forms portable-class-library .net-core

我想在我的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 supposed就在那里。我无法理解我错过了什么?

我甚至尝试了NodaTime,SystemClock.Instance.Now.InZone(DateTimeZoneProviders.Tzdb["‌​Asia/Tehran"]).Date.‌​ToString(),日期仍处于默认文化状态!

更新

最后,Persian Calendar Plus完成了这项工作!但如果有人能够掌握它的底部,那将是非常有用的!

1 个答案:

答案 0 :(得分:0)

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

您需要创建自定义helper或某些extension,如此处所述。

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

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