bin*_*eol 8 c# datetime utc uidatepicker xamarin.ios
我遇到了Monotouch UIDatePicker落后1小时的问题.我认为这与Time Zones或类似的东西有关.我已经尝试显式设置我的UIDatePicker的TimeZone和Locale,但这似乎没有帮助.
datePicker.Locale = NSLocale.CurrentLocale;
datePicker.TimeZone = NSTimeZone.LocalTimeZone;
Run Code Online (Sandbox Code Playgroud)
在ValueChanged处理程序中,以下行返回比用户界面中选择的时间早1小时的值:
var date = DateTime.SpecifyKind((s as UIDatePicker).Date, DateTimeKind.Local).ToLocalTime();
Run Code Online (Sandbox Code Playgroud)
在ValueChanged Handler中,我仔细检查了Locale和TimeZone是否与设置的相同.TimeZone是欧洲/都柏林和Locale en_US.该信息通过以下方式检索:
datePicker.Locale.LocaleIdentifier;
datePicker.DatePicker.TimeZone;
Run Code Online (Sandbox Code Playgroud)
我还缺少另一个步骤吗?
谢谢!
Dar*_*nor 10
DatePicker返回的日期是UTC格式.有几种将UTC转换为本地时间的方法.正如这个答案所述,ToLocalTime是最好的.
DateTime.SpecifyKind(datePicker.Date, DateTimeKind.Utc).ToLocalTime();
Run Code Online (Sandbox Code Playgroud)