使用 Cocoa/objective-C 从整数(年...秒)构建 NSDate

发布于 2024-10-22 02:49:05 字数 427 浏览 5 评论 0原文

我有year, mont, ..., Second 整数类型,我需要从它们构建 NSDate 。 我尝试了这段代码,但我得到了(空)。

NSDateFormatter *tempFormatter = [[[NSDateFormatter alloc]init]autorelease];
[tempFormatter setDateFormat:@"yyyy-mm-dd hh:mm:ss"];
NSString* message = [NSString stringWithFormat:@"%04d-%02d-%02d %02d:%02d:%02d", year, month, day, hour, minute, second];
NSDate *day3 = [tempFormatter dateFromString:message];

这段代码有什么问题?

I have year, mont, ... , second in integer type, and I need to build NSDate from them.
I tried this code, but I got (null).

NSDateFormatter *tempFormatter = [[[NSDateFormatter alloc]init]autorelease];
[tempFormatter setDateFormat:@"yyyy-mm-dd hh:mm:ss"];
NSString* message = [NSString stringWithFormat:@"%04d-%02d-%02d %02d:%02d:%02d", year, month, day, hour, minute, second];
NSDate *day3 = [tempFormatter dateFromString:message];

What's wrong with this code?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

情归归情 2024-10-29 02:49:05

使用日期组件创建一个 NSDateComponents 会更简单,然后使用 NSCalendar 的 dateFromComponents: 将其转换为日期。 NSDateComponents 文档 有一个示例说明如何做到这一点:

NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:day];
[comps setMonth:month];
[comps setYear:year];
[comps setHour:hour];
[comps setMinute:minute];
[comps setSecond:second];
NSCalendar *cal = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *date = [cal dateFromComponents:comps];
[comps release];

It would be more straightforward to create an NSDateComponents with your date components, and then use NSCalendar's dateFromComponents: to convert it to a date. The documentation for NSDateComponents has an example of how to do exactly this:

NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:day];
[comps setMonth:month];
[comps setYear:year];
[comps setHour:hour];
[comps setMinute:minute];
[comps setSecond:second];
NSCalendar *cal = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *date = [cal dateFromComponents:comps];
[comps release];
单调的奢华 2024-10-29 02:49:05

而不是

[tempFormatter setDateFormat:@"yyyy-mm-dd hh:mm:ss"];

[tempFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

instead of

[tempFormatter setDateFormat:@"yyyy-mm-dd hh:mm:ss"];

write

[tempFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文