在 iPhone 中将字符串转换为日期时出现问题?

发布于 2024-09-12 22:42:26 字数 75 浏览 6 评论 0原文

如何将 NSString 2010-08-03 04:37:31.0 转换为 2010 年 8 月 3 日?

是否可以?

How to convert NSString 2010-08-03 04:37:31.0 to August 3, 2010?

Is it possible?

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

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

发布评论

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

评论(2

中二柚 2024-09-19 22:42:26

这可能是重复的,但 NSDateFormatter 正是您正在寻找的。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.S"];
NSDate *date = [dateFormatter dateFromString:inDateString];

[dateFormatter setDateFormat:@"MMMM dd',' yyyy"];
NSString *outDateString = [dateFormatter stringFromDate:date];

但这种方法有两个问题。

  1. 输入字符串缺少时区数据
  2. 不同的文化期望与月日年不同的顺序。如果您使用一种通用的 NSDateFormatterStyle 格式(例如 NSDateFormatterLongStyle),则可以解决此问题。

This is probably a duplicate but NSDateFormatter is what you are looking for.

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.S"];
NSDate *date = [dateFormatter dateFromString:inDateString];

[dateFormatter setDateFormat:@"MMMM dd',' yyyy"];
NSString *outDateString = [dateFormatter stringFromDate:date];

There are two problems with this approach though.

  1. The input string is that it lacks timezone data
  2. Different cultures expect a different order than Month Day Year. That can be fixed if you use one of the generic NSDateFormatterStyle formats like NSDateFormatterLongStyle.
岁月染过的梦 2024-09-19 22:42:26

Check out the NSDateFormatter documentation. You probably want a format string of @"%B %e, %Y" for the output.

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