我知道这是一个重复的问题,但在stackoverflow和google上搜索了许多类似的问题之后,没有一个解决方案适用于我。
I know this is a repetitive question, but after searching for many similar questions on stackoverflow and google, none of the solutions worked for me.
我想要将我从DB收到的日期转换为字符串格式以在iPhone应用程序中显示。
I am tring to convert date which I receive from DB to string format to display in iPhone app.
我将以下列方式将日期转换为字符串,但[dateFormat stringFromDate:beginDate]始终返回nil。
I am converting date to string in following manner, but [dateFormat stringFromDate:beginDate] always return nil.
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"MMM dd hh:mm a"]; NSString *dateString = [dateFormat stringFromDate:beginDate]; NSLog(@"date: %@", dateString); [dateFormat release];收到的服务器NSDate格式如下:
The server NSDate received is of following format:
2012-05-23 13:06:51.394+1000我希望它
May 25 13:06 PM请帮忙。
提前致谢。
推荐答案您需要先将beginDate字符串转换为实际的NSDate,然后执行此操作:
You need to convert your beginDate string to an actual NSDate first, and then do it:
NSString *beginDateString = [arr_data objectAtIndex:1]; NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSSZ"]; NSDate *beginDate = [formatter dateFromString:beginDateString]; [formatter setDateFormat:@"MMM dd hh:mm a"]; NSString *dateString = [formatter stringFromDate:beginDate]; NSLog(@"date: %@", dateString);请注意,您在问题中说明要输出 5月25日13:06 PM 但它实际上会输出 5月25日01:06 PM 。 (13:06将使用24小时时间而不是12小时时间,并且不需要上午/下午。)
Note that you say in your question that you want it to output May 25 13:06 PM but it will actually output May 25 01:06 PM. (13:06 would be using 24 hour time instead of 12 hour time and wouldn't need the am/pm.)
更多推荐
stringFromDate总是NIL
发布评论