xamarin.ios – 从NSDate值获取日期部分

xamarin.ios – 从NSDate值获取日期部分,第1张

概述我正在使用UIDatePicker,我在将此数据转换为MonoTouch中的System.DateTime值时遇到问题.从NSDate到DateTime的转换存在问题,我已经解决了这个问题,但现在我看到如果您选择的日期不在同一个夏令时期间,那么您只需一小时.例如,如果我在2010年1月选择一个日期,我将有一个抵消问题. 我想做的是当用户从UIDatePicker中选择日期/时间时,获取NSDate 我正在使用UIDatePicker,我在将此数据转换为Monotouch中的System.DateTime值时遇到问题.从NSDate到DateTime的转换存在问题,我已经解决了这个问题,但现在我看到如果您选择的日期不在同一个夏令时期间,那么您只需一小时.例如,如果我在2010年1月选择一个日期,我将有一个抵消问题.

我想做的是当用户从UIDatePicker中选择日期/时间时,获取NSDate的年,月,日,小时和分钟值,然后使用这些值创建一个新的System.DateTime我们将始终确保获得与用户在UIDatePicker中看到的完全相同的日期值.

如何将NSDate值分解为各种日期部分?

谢谢.

解决方法 摆脱夏令时问题的一种简单方法是将时区设置为GMT.然后UIDatePicker将忽略夏令时:

_datePicker.TimeZone = NSTimeZone.FromAbbreviation("GMT");

在Monotouch中,NSDate与DateTime的隐式转换非常好,但您必须注意NSDate始终是UTC时间,而DateTime默认设置为DateTimeKind.UnspecifIEd(从数据库读取时)或DateTimeKind.Locale(使用DateTime设置时) .今天).
在没有复杂的时区计算的情况下进行转换的最佳方法是强制使用正确的DateTimeKind:

// Set date to the date picker (_date is a DateTime with time part 0:00:00):    _datePicker.Date = DateTime.SpecifyKind(_date,DateTimeKind.Utc);    // Get the date from the date picker:    _date = DateTime.SpecifyKind(_datePicker.Date,DateTimeKind.UnspecifIEd);

这比获取单独的日,月和年值更容易,更可靠.

总结

以上是内存溢出为你收集整理的xamarin.ios – 从NSDate值获取日期部分全部内容,希望文章能够帮你解决xamarin.ios – 从NSDate值获取日期部分所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1070779.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存