gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 03:22:43 26 4
gpt4 key购买 nike

我正在使用 UIDatePicker,但在 MonoTouch 中将此数据转换为 System.DateTime 值时遇到问题。从 NSDate 到 DateTime 的转换存在问题,我已经基本解决了这个问题,但是现在我发现如果您选择的日期不在同一夏令时时间段内,那么您将休息一个小时。例如,如果我选择 2010 年 1 月的日期,我就会遇到抵消问题。

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

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

谢谢你。

最佳答案

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

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

NSDate 与 DateTime 的隐式转换在 Monotouch 中非常好,但您必须意识到 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 值中获取日期部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3392614/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com