从日期字符串中检索年份和月份

发布于 2024-12-29 02:42:31 字数 377 浏览 3 评论 0原文

我想从这种日期中检索年份和月份:2011-12-23 10:45:01 但没有运气。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
[dateFormatter setDateFormat:@"yyyy"];
NSLog(@"Date = %@",[dateFormatter dateFromString:@"2011-12-23 10:45:01"]);
[dateFormatter release];

Date = (null),我不明白为什么。

I want to retrieve year and then month from this kind of date: 2011-12-23 10:45:01 with no luck.

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
[dateFormatter setDateFormat:@"yyyy"];
NSLog(@"Date = %@",[dateFormatter dateFromString:@"2011-12-23 10:45:01"]);
[dateFormatter release];

Date = (null), i can't understand why.

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

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

发布评论

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

评论(2

暮凉 2025-01-05 02:42:31

你必须分两步完成,首先匹配整个日期,然后输出你想要的位:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date = [dateFormatter dateFromString:@"2011-12-23 10:45:01"];

//now you have the date, you can output the bits you want

[dateFormatter setDateFormat:@"yyyy"];
NSString *year = [dateFormatter stringFromDate:date];

[dateFormatter setDateFormat:@"MM"];
NSString *month = [dateFormatter stringFromDate:date];

[dateFormatter release];

You have to do it in two steps, first match the whole date, then output the bits you want:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date = [dateFormatter dateFromString:@"2011-12-23 10:45:01"];

//now you have the date, you can output the bits you want

[dateFormatter setDateFormat:@"yyyy"];
NSString *year = [dateFormatter stringFromDate:date];

[dateFormatter setDateFormat:@"MM"];
NSString *month = [dateFormatter stringFromDate:date];

[dateFormatter release];
鹿港巷口少年归 2025-01-05 02:42:31

这已经在 将 NSDate 格式化为特定样式中得到了回答对于年、月、日和时、分、秒

具体来说:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];

NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init];
[timeFormat setDateFormat:@"HH:mm:ss"];

NSDate *now = [[NSDate alloc] init];

NSString *theDate = [dateFormat stringFromDate:now];
NSString *theTime = [timeFormat stringFromDate:now];

NSLog(@"\n"
  "theDate: |%@| \n"
  "theTime: |%@| \n"
  , theDate, theTime);

[dateFormat release];
[timeFormat release];
[now release];

This was already answered in Formatting NSDate into particular styles for both year, month, day, and hour, minute, seconds.

Specifically:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];

NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init];
[timeFormat setDateFormat:@"HH:mm:ss"];

NSDate *now = [[NSDate alloc] init];

NSString *theDate = [dateFormat stringFromDate:now];
NSString *theTime = [timeFormat stringFromDate:now];

NSLog(@"\n"
  "theDate: |%@| \n"
  "theTime: |%@| \n"
  , theDate, theTime);

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