iphone - 更改 iPhone 中的日期格式

标签 iphone ios nsdateformatter

自从过去两个小时以来,我一直在尝试这个,最后把它留给了你们:P

我需要转换这个 String Mon, 14 May 2012, 12:00:55 +0200 转换为日期 dd/mm/yyyy hh:ss 格式..

对于实现目标的任何形式的帮助,我们将不胜感激。

我尝试过的

我试过使用 NSDateFormatter 但我无法弄清楚上述日期的确切格式。 这 [dateFormatter setDateFormat:@"EEEddMM,yyyy HH:mm:ss"]; 是我尝试过的方式以及许多其他格式

例如:

 NSString *finalDate = @"Tue, 29 May 2012, 14:24:56 +0200";
 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
 [dateFormatter setDateFormat:@"EEEddMM,yyyy HH:mm:ss"];
  NSDate *date = [dateFormatter dateFromString:finalDate];

这里的日期总是 nil

最佳答案

日期格式化最重要的部分经常被遗忘,告诉NSDateFormatter输入语言:

NSDateFormatter *dateFormatter = [NSDateFormatter new];
[dateFormatter  setDateFormat:@"EEE, dd MMMM yyyy, HH:mm:ss Z"];
dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"EN"];
NSDate *date = [dateFormatter dateFromString:@"Mon, 14 May 2012, 12:00:55 +0200"];
NSLog(@"date: %@", date);

我检查了输出:date: 2012-05-14 10:00:55 +0000

请注意日期格式器中的 HH24hr

现在我建议不要使用固定的输出方案,而是使用 NSDateFormatterStyle 之一:

[dateFormatter setDateStyle:NSDateFormatterShortStyle];
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];

NSString *dateString = [dateFormatter stringFromDate:date];

NSLog(@"date: %@", dateString);

美式英语将输出:5/14/12 12:00 PM


如果您不使用 ARC,此代码对 ARC 有效,将 autorelease 添加到 NSLocale 并发布完成后 NSDateFormatter

关于iphone - 更改 iPhone 中的日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10881663/

相关文章:

iphone - 离线使用 ASIDownloadCache

iphone - 地址簿崩溃,只有一些联系人

ios - 为什么不能将属性观察器添加到惰性属性中?

ios - Google Plus Like Tableviewcell 弹出窗口

objective-c - NSDateFormatter BC/AD日期发行

ios - 访问 UIViewController 类别中的 UIButton

iphone - 自定义 UIPageControl View ,用 "Page X of Y"替换点

ios - 在 iOS 上使用 facebook sdk 从 iOS 应用程序发布内容后,facebook 内容在墙上和主页上看起来不同

iphone - NSDateFormatter - 1 天不正确?

swift - 在 Unix 时间戳上使用 DateFormatter