【问题标题】:change date format in iPhone更改 iPhone 中的日期格式
【发布时间】:2012-06-04 12:53:48
【问题描述】:

从过去两个小时开始我就在尝试这个,最后把它留给你们了: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];

这里的日期总是为零

【问题讨论】:

标签: iphone ios nsdateformatter


【解决方案1】:

日期格式最重要的部分经常被遗忘,告诉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

请注意,日期格式化程序中的 HH 用于 24hr

现在我建议不要使用固定输出方案,而是使用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

【讨论】:

  • 如果投票不需要 15 个 repu,我也会这样做 :)
【解决方案2】:
NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
[inputFormatter setDateFormat:@"dd/mm/yyyy hh:ss"];
NSString *formatterDate = [inputFormatter stringFromDate:inDate];
[inputFormatter release];

【讨论】:

    【解决方案3】:

    获取有关所有日期格式的信息 我的博客链接是http://parasjoshi3.blogspot.in/2012/01/date-formate-info-for-iphone-sdk.html

    下面还有小功能.....

    -(NSString *) dateInFormat:(NSString*) stringFormat {
     char buffer[80];
     const char *format = [stringFormat UTF8String];
     time_t rawtime;
     struct tm * timeinfo;
     time(&rawtime);
     timeinfo = localtime(&rawtime);
     strftime(buffer, 80, format, timeinfo);
     return [NSString  stringWithCString:buffer encoding:NSUTF8StringEncoding];
    }
    

    ////////喜欢.......

    NSString *mydate =  [self dateInFormat:@"%Y%m%d-%H%M%S"];
    

    希望对你有帮助....

    【讨论】:

      猜你喜欢
      • 2011-06-05
      • 2016-11-22
      相关资源
      最近更新 更多