ios - 如何从 NSDate 中删除时区偏移量

标签 ios objective-c datetime nsdate nsdateformatter

我正在尝试从 NSDateFormatter 中获取 yyyy-MM-dd HH:mm

但是字符串吐出Historical Date: 2016-08-23 14:03:00 +0000

我不想要秒数或 +0000。

我做错了什么?

int seconds = -( days * (24 * 60 * 60)); //24 hours, times 60 minutes, times 60 seconds
NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"yyyy-MM-dd HH:mm"];

NSString* stringFromDate = [format stringFromDate:[NSDate date]];
NSDate * pastDate = [[format dateFromString:stringFromDate] dateByAddingTimeInterval:seconds];

NSLog(@"Date: %@", pastDate);

最佳答案

发生这种情况是因为您正在打印 NSDate 对象。 NSDate 对象封装了一个时间点,它不负责它的字符串表示。 您真正需要做的是计算您需要的确切日期,然后将其格式化为 NSString

类似的东西:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
NSDate *pastDate = [[NSDate date] dateByAddingTimeInterval:seconds];

NSString *yourDateInString = [dateFormatter stringFromDate:pastDate];
NSLog(@"%@", yourDateInString);

此外,使用 NSCalendarNSCalendarComponents 来处理日期和计算新日期而不是仅仅添加时间间隔是一种很好的做法。

关于ios - 如何从 NSDate 中删除时区偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39125608/

相关文章:

ios - swift 从 Appdelegate 转至 UITabBarController

ios - iPad中大量大图像的内存泄漏

ios - 与NSInteger的关联引用

objective-c - iOS - 只有第一行文字可见

iphone - 从 UITextField iPhone 获取用户名密码

python-3.x - pymongo 将 mongoDB 日期转换为 python 日期时间

c# - 在集合中找不到参数 'daterange'

ios - UIFont 为自定义字体返回 nil

ios - 以恒定中心减小 UIButton 大小

python - Pandas 将基于日期时间类型的数据框分组到忽略日期部分的不同时期