iOS*_*Dev 2 iphone objective-c nsdate ipad ios
我知道这是一个重复的问题,但在stackoverflow和google上搜索了许多类似的问题后,没有一个解决方案适合我.
我想把从DB收到的日期转换为字符串格式,以便在iPhone应用程序中显示.
我将以下列方式将日期转换为字符串,但[dateFormat stringFromDate:beginDate]始终返回nil.
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMM dd hh:mm a"];
NSString *dateString = [dateFormat stringFromDate:beginDate];
NSLog(@"date: %@", dateString);
[dateFormat release];
Run Code Online (Sandbox Code Playgroud)
收到的服务器NSDate具有以下格式:
2012-05-23 13:06:51.394+1000
Run Code Online (Sandbox Code Playgroud)
我希望它
May 25 13:06 PM
Run Code Online (Sandbox Code Playgroud)
请帮忙.
提前致谢.
beginDate的类型是什么?如果是NSString,则首先使用dateFromStringNSDateFormatter方法将其转换为NSDate .
EDIT2 :(修正了拼写错误并添加了完整的工作示例)
NSString *beginDate = @"2012-05-23 13:06:51.394+1000";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
// Set the format of the dateFormatter to the date format of the server
dateFormatter.dateFormat = @"yyyy-MM-dd HH:MM:ss.SSSZ";
// Convert the NSString to NSDate
NSDate* date = [dateFormatter dateFromString: beginDate];
// Set the format of dateFormatter to your own format
dateFormatter.dateFormat = @"MMM dd hh:mm a";
// Convert NSDate to your own format of date
beginDate = [dateFormatter stringFromDate: date];
Run Code Online (Sandbox Code Playgroud)
您需要先将beginDate字符串转换为实际的NSDate,然后执行以下操作:
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);
Run Code Online (Sandbox Code Playgroud)
请注意,您在问题中说您希望它输出May 25 13:06 PM但实际上会输出May 25 01:06 PM.(13:06将使用24小时而不是12小时时间,不需要上午/下午.)
| 归档时间: |
|
| 查看次数: |
3152 次 |
| 最近记录: |