2 ooomiao oOOMIAO 于 2013.03.13 10:29 提问

NSDateComponents中设置小时的问题

在NSDateComponents中设置小时。麻烦看一下我的代码:

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *dateComps = [[NSDateComponents alloc] init];

[dateComps setDay:intDay];
[dateComps setMonth:intMonth];
[dateComps setYear:intYear];
[dateComps setHour:intHoures];
[dateComps setMinute:intMinutes];

NSDate *itemDate;
itemDate = [calendar dateFromComponents:dateComps];

NSLog(@"reminder date: %@", itemDate);

我设置了小时为13,但是结果是11。时间是24小时制的。

不知道怎么办?

谢谢您的帮忙。

1个回答

h3c4lenovo
h3c4lenovo   2013.03.14 09:36
已采纳
NSDateComponents默认是24小时的,你可以通过:
NSLog(@"---: %d",dateComps.hour);//验证

因此你输入13输出11的原因是NSDate默认采用12小时制输出。你需要做的就是格式化NSDate
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *myNewDate = [formatter stringFromDate:itemDate];
[formatter release];
NSLog(@"reminder date: %@", myNewDate);
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
iOS时间那点事 NSCalendar + NSDateComponents
历法能使人类确定每一日再无限的时间中的确切位置并记录历史。日历,历法,一般历法都是遵循固定的规则的,具有周期性。日历都是已知的或可预测的。任何一种具体的历法,首先必须明确规定起始点,即开始计算的年代,这叫“纪元”;以及规定一年的开端,这叫“岁首”。此外,还要规定每年所含的日数,如何划分月份,每月有多少天等等。NSCalendar对世界上现存的常用的历法进行了封装,既提供了不同历法的时间信息,又支持
iOS 官方文档 NSDateComponents
前言NSDateComponents是一个与日期有关的类,但这个类具体是干吗的呢?我们现从字面上的意思来理解。Components就是零件、组件的意思,其实这个类的作用就是把日期拆分成一个一个的组件。一个日期是有年月日时分秒组成的,components这个类的作用就是把日期拆分成单独的年、月、日、时、分、秒。一、访问日期组件1、era(1)方法原型@property NSInteger era //
日历(NSCalendar)与日期组建(NSDateComponents)
之前介绍了NSDate的功能和用法,以及NSDate与NSString之间的相互转换,假设you
NSDateComponents的各种week
使用 NSDateComponents
NSDate相差8个小时问题
iOS NSDate处理相差8个小时的问题
iOS开发中获取上月的起止时间(NSCalendar、NSDateComponents和NSDate的使用)
本文主要描述iOS开发中使用NSCalendar、NSDateComponents和NSDate获取上月的起止时间的方法。也许还有更简便的方法,还望分享。
Objective-C学习之NSDateComponents
NSDateComponents NSDateComponents封装在一个可扩展的,面向对象的方式的日期组件。它是用来弥补时间的日期和时间组件提供一个指定日期:小时,分钟,秒,日,月,年,等等。它也可以用来指定的时间,例如,5小时16分钟。一个NSDateComponents对象不需要定义所有组件领域。当一个NSDateComponents的新实例被创建,日期组件被设置为NSUndefinedD
ios 获取时间--NSCalendar NSDateComponents NSDate
NSCalendar + NSDateComponents 历法能使人类确定每一日再无限的时间中的确切位置并记录历史。日历,历法,一般历法都是遵循固定的规则的,具有周期性。日历都是已知的或可预测的。任何一种具体的历法,首先必须明确规定起始点,即开始计算的年代,这叫“纪元”;以及规定一年的开端,这叫“岁首”。此外,还要规定每年所含的日数,如何划分月份,每月有多少天等等。NSCalendar对世
NSDate: 处理时间(刚刚、几分钟前、几小时前等)
NSDate的相关知识 NSCalendar + NSDateComponents 相关知识 1、NSDate类目 NSDate + SLDate .h 文件 // // NSDate+SLDate.h // MyWB // // Created by SmileLife on 16/6/18. // Copyright © 2016年 SmileLife. All right
NSDateComponents计算时间差的bug
(void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib.NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDa