我必须将此NSString:“12/13/1980”转换为NSDate对象。 我使用这样的代码:
NSString *birthday = @"12/13/1980"
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM/dd/yyyy"];
NSDate *date = [dateFormat dateFromString:dateString];
但结果如下:“1980-12-12 23:00:00 +0000” 为什么?我想要相同的格式和相同的日期。 非常感谢你。
答案 0 :(得分:2)
[dateFormat dateFromString:dateString]
方法生成一个NSDate对象,表示单个时间点。
当你NSLog日期对象时,它正在打印NSDate对象的系统表示。我假设你的语言环境是GMT + 1 ..所以NSLog打印12/12/1980 23:00。
如果要打印日期对象,请使用格式化程序执行[dateFormat stringFromDate:date];
答案 1 :(得分:1)
格式取决于本地化,还可以选择设置日期/时间是短格式,中格格式还是长格式 - 我相信短片是您正在寻找的:
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
答案 2 :(得分:1)
这是因为NSDate对象总是有时间和时区,所以如果你没有在你想要转换的字符串中指定IOS将使用你的本地时区然后猜测时间,这种情况将是UTC 0中的23:00