Ios 从月、日和年创建NSDate
我想从字符串创建一个NSDate变量,该日期来自第三方服务器,因此我无法更改它。日期的格式为2013年12月8日,我正在使用以下给定的日期格式化程序样式将其转换为日期,但这为所有项目创建了一个错误的固定日期,即2012-12-22 19:00:00+0000 请你指导我如何解决这个问题好吗。我不想打断字符串并使用NSDateComponents来创建日期Ios 从月、日和年创建NSDate,ios,iphone,objective-c,nsdateformatter,Ios,Iphone,Objective C,Nsdateformatter,我想从字符串创建一个NSDate变量,该日期来自第三方服务器,因此我无法更改它。日期的格式为2013年12月8日,我正在使用以下给定的日期格式化程序样式将其转换为日期,但这为所有项目创建了一个错误的固定日期,即2012-12-22 19:00:00+0000 请你指导我如何解决这个问题好吗。我不想打断字符串并使用NSDateComponents来创建日期 [dateFormaterForSermonTemp setDateFormat:@"MMMM dd, YYYY"]; 您可以使用以下代码:
[dateFormaterForSermonTemp setDateFormat:@"MMMM dd, YYYY"];
您可以使用以下代码:
NSString *stringDate = @"December 08, 2013";
// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM dd, yyyy"];
NSDate *date = [dateFormat dateFromString:stringDate];
// Convert date object to desired output format
[dateFormat setDateFormat:@"MMMM dd, yyyy"];
stringDate = [dateFormat stringFromDate:date];
NSLog(@"%@", stringDate);
stringDate
是来自服务器的字符串,您可以将其转换为NSDate
并为日期添加新格式,如@“MMMM dd,yyyy”
(这里,您将得到相同的结果,但更改格式,例如@“MMMM dd yyy EEE”
,以获取另一个格式日期)
编辑:
也许你需要为你的约会设定时间僵尸
[dateFormat setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT+0:00"]];
您可以使用以下代码:
NSString *stringDate = @"December 08, 2013";
// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM dd, yyyy"];
NSDate *date = [dateFormat dateFromString:stringDate];
// Convert date object to desired output format
[dateFormat setDateFormat:@"MMMM dd, yyyy"];
stringDate = [dateFormat stringFromDate:date];
NSLog(@"%@", stringDate);
stringDate
是来自服务器的字符串,您可以将其转换为NSDate
并为日期添加新格式,如@“MMMM dd,yyyy”
(这里,您将得到相同的结果,但更改格式,例如@“MMMM dd yyy EEE”
,以获取另一个格式日期)
编辑:
也许你需要为你的约会设定时间僵尸
[dateFormat setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT+0:00"]];
给你。(鱼竿不是鱼)
因此,日期为2013年12月8日的格式字符串应该类似于(鱼):
别忘了为日期格式化程序设置适当的区域设置,否则在具有不同区域设置的设备上可能会出现意外问题。这里是您的答案。(鱼竿不是鱼)
NSString *strDate=@"December 08, 2013";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
NSDate *date=[dateFormatter dateFromString:strDate];
因此,日期为2013年12月8日的格式字符串应该类似于(鱼):
不要忘记为日期格式化程序设置适当的区域设置,否则在具有不同区域设置的设备上可能会出现意外问题
NSString *strDate=@"December 08, 2013";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
NSDate *date=[dateFormatter dateFromString:strDate];
试试这个
试试这个…不要使用大写YYYY。请使用小写的yyyy.并注意,生成的NSDate对象将始终以上面显示的格式显示,并且以GMT显示--您无法更改该格式。如果要以其他格式显示,请通过NSDateFormatter运行日期返回以生成字符串。(事实上,您不应该在NSDate上使用
@“%@”
生成的格式,因为该格式仅用于诊断,理论上可以随时更改。)@Anna YYYY和yyyy@Developer,请参阅和。不要使用大写YYYY。请使用小写的yyyy.并注意,生成的NSDate对象将始终以上面显示的格式显示,并且以GMT显示--您无法更改该格式。如果要以其他格式显示,请通过NSDateFormatter运行日期返回以生成字符串。(事实上,您不应该在NSDate上使用@“%@”
生成的格式,因为该格式仅用于诊断,理论上可以随时更改。)@Anna YYYY和yyyy@Developer,请参见和。最关键的是小写字母“y”。大写字母“Y”有一个奇怪的不同含义,它把一切都搞糟了。请看我的链接,文档不清楚大写字母Y
是如何以字符串格式工作的。它说它用于“年-周日历”,因此可能需要周信息才能使大写字母Y
正常工作。关键是小写字母“Y”。大写字母“Y”有一个奇怪的不同含义,它把一切都搞糟了。请看我的链接,文档不清楚大写字母Y
是如何以字符串格式工作的。它说它用于“年-周日历”因此,可能需要周信息才能使资本Y
正常工作。是的,其工作但将日期更改为一日后的输出为2013-12-07 19:00:00+0000是的,其工作但将日期更改为一日后的输出为2013-12-07 19:00:00是的,其工作但将日期更改为一日后的输出为2013-12-07 19:00:00:00+0000yes工作但将日期更改为一天之前的输出为2013-12-07 19:00:00+0000yes工作但将日期更改为一天之前的输出为2013-12-07 19:00:00+0000I我认为您的设备上的时钟设置或时区有问题。查看我的编辑。是的,它工作正常,但它将日期更改为一天前输出为2013-12-07 19:00:00+0000我认为您的设备上的时钟设置或时区有问题。看看我的编辑。