将日历日期转换为正确日期
问题描述:
我正在创建一个使用日历创建警报的应用程序。我可以在正确的日期正确设置警报。例如,我为4th of May 2017 1 PM
设置了一个闹钟。将日历日期转换为正确日期
当我尝试获取日历事件时,它会以UTC为单位返回其他一些日期。
正如你所看到的,它返回我10 AM
与UTC同一天。我想知道如何从日历中获取确切的日期。
答
你只需要转换UTC到当地时区。
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
NSDate *date1 = [dateFormatter dateFromString:@"2017-05-04 10:00:00"];
// change to a readable time format and change to local time zone
[dateFormatter setDateFormat:@"MM/dd/yyyy hh:mm a"];
[dateFormatter setTimeZone:[NSTimeZone localTimeZone]];
NSString *strCurrentLocalTimezoneDate = [dateFormatter stringFromDate:date1];
答
//除了此代码,您可能还必须设置timeZone。
NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"MMM-dd-yyyy"];
NSDate *now = [[NSDate alloc] init];
NSString *dateString = [format stringFromDate:now];
NSLog(@"%@",dateString);
答
Date
始终把当前时区,直到我们改变other.If我们打印Date
它可能会表现出不同,但实际上它需要的电流。
您需要更正时区,或许在自定义日历中设置时区可能会有帮助。 – NeverHopeless
这应该有所帮助,你只需要将日期转换为当前时区即可:http://stackoverflow.com/questions/29392874/converting-utc-date-format-to-local-nsdate – SeanLintern88