ios - 从字符串格式化日期?

标签 ios objective-c nsdate nsdateformatter

我有 NSString * DateString 值为“01-10-2013 09:43:45”

我想从中形成日期,我的代码是

 NSDateFormatter * DateFormatter = [[NSDateFormatter alloc]init];
            DateFormatter.dateFormat=@"MM-dd-yyyy HH:mm:ss";
            NSDate * Date =[DateFormatter dateFromString:DateString];  

但是当我记录日期时,它的值为 2013-01-10 07:43:45 +0000 请帮忙

最佳答案

您需要将 NSDateFormatter 设置为正确的时区。

如果输入字符串是“本地时间”,那么使用这个:

NSDateFormatter *DateFormatter = [[NSDateFormatter alloc]init];
[DateFormatter setTimeZone:[NSTimeZone systemTimeZone]];   // <--- Set to local time
DateFormatter.dateFormat=@"MM-dd-yyyy HH:mm:ss";
NSDate * Date =[DateFormatter dateFromString:DateString];  

如果输入字符串是 UTC/GMT,则使用它:

NSDateFormatter *DateFormatter = [[NSDateFormatter alloc]init];
[DateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];   // <--- Set to UTC
DateFormatter.dateFormat=@"MM-dd-yyyy HH:mm:ss";
NSDate * Date =[DateFormatter dateFromString:DateString];  

关于ios - 从字符串格式化日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14262175/

相关文章:

ios - 在 Parse 数据浏览器中隐藏字符串值

objective-c - 如何根据 NSString 计算动态大小的 UITableViewCells 所需的高度

ios - Swift 将 NSDate 转换为 24h 格式在设备上失败

ios - 如何用 glkit、opengl es2 绘制数千个正方形?

ios - 在单元测试-Swift 中找不到模块 "MyApp"

ios - 当 UIAlertController 覆盖屏幕时自动禁用自定义类型的 UIButton

ios - CFBundleExecutable key xcode 8.1 的不存在文件

objective-c - 在 iPhone Simulator 4.3/XCode 4.2 和 4.0.2 中使用 Blocks 会导致应用程序崩溃

core-data - '-[__NSDate ManagedObjectContext] : unrecognized selector sent to instance

ios - 代码未在 UILabel 中从 Parse.com 检索/显示日期