【问题标题】:How to convert Date like "2012-12-26" to "december 26, 2012" in iOS ?如何在 iOS 中将“2012-12-26”等日期转换为“2012 年 12 月 26 日”?
【发布时间】:2012-12-28 08:42:27
【问题描述】:

我想在 iOS 中将日期 2012-12-26 转换为 december 26, 2012

我正在使用 websrvice,数据采用这种格式1990-12-26

我想把它改成december 26, 2012 格式。

这就是我正在做的:

lbl_Rightside.text = [rootElement stringValueForNode:@"date"];
NSLog(@"lbl_Rightside is %@",lbl_Rightside.text);
[lbl_Rightside release];

1990-12-26 上获取此标签的日期。现在我想将日期更改为december 26, 2012 格式。

非常欢迎专家的任何提示。

【问题讨论】:

  • 周围有很多类似的问题。在你问之前检查一下。
  • -1 搜索不正确并提出重复问题。提问前请阅读FAQs
  • 关闭这个问题...我不能达到限制:(

标签: iphone objective-c ios xcode ipad


【解决方案1】:

你可以使用NSDateFormatter 来做这种事情。首先

  1. 使用 dateFromString 将您的日期字符串转换为日期对象: 方法。
  2. 使用 stringFromDate: 方法从日期转换为您想要的字符串
  3. 不同格式的字符串可以在here找到。

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd"];
    NSDate *orignalDate   =  [dateFormatter dateFromString:YOUR_ORIGINAL_STRING];
    
    [dateFormatter setDateFormat:@"MMMM dd, yyyy"];
     NSString *finalString = [dateFormatter stringFromDate:orignalDate];
    
    [dateFormatter release]; //if not using ARC
    

【讨论】:

  • 我建议不要使用日期格式从日期创建字符串。由于许多不同的文化设置有不同的日期显示方式,您可能希望使用日期或时间样式中的NSDateFormatterStyle。这将确保以反映用户设置的正确方式显示日期。
  • 您是在讲述日期部分的字符串,对吧?我知道你在说什么,但是在 OP 特别要求 MMMM dd, yyyy 格式的问题中,所以在这种情况下,这段代码在任何地方都可以使用。但是你的建议是正确的
  • 确实这就是为什么建议它。
  • 非常感谢。这真的很有帮助,非常感谢。
【解决方案2】:

查看有关NSDateFormatter 的Apple 官方文档。你应该使用这个类来做这种格式化。

【讨论】:

    【解决方案3】:

    通过使用NSDateFormatter

    NSString 到 NSDate

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    // this is imporant - we set our input date format to match our input string
    // if format doesn't match you'll get nil from your string, so be careful
    [dateFormatter setDateFormat:@"yyyy-MM-dd"];
    NSDate *dateFromString = [[NSDate alloc] init];
    dateFromString = [dateFormatter dateFromString:dateString];
    [dateFormatter release];
    

    NSDate 转换为 NSString:

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"MMMM dd, yyyy"];
    NSString *strDate = [dateFormatter stringFromDate:[NSDate date]];
    NSLog(@"%@", strDate);
    [dateFormatter release];
    

    【讨论】:

      【解决方案4】:

      试试看NSDateFormatter类,

      NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
      [dateFormatter setDateFormat:@"yyyy-MM-dd"];  // this is your input date format
      NSDate *newDate = [dateFormatter dateFromString:dateString];//converting string to date object
      

      您要查找的格式类似于:

      [dateFormatter setDateFormat:@"MMM dd,yyy"]; // setting new format
      NSLog(@"The date is = %@",[dateFormatter stringFromDate:newDate])
      

      【讨论】:

        猜你喜欢
        • 2012-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多