【问题标题】:NSDate in format dd/MM/yyyy [duplicate]NSDate 格式为 dd/MM/yyyy [重复]
【发布时间】:2013-07-29 13:44:26
【问题描述】:

我想要 dd/MM/yyyy 格式的 NSDate,没有时间,即 hh:mm:ss 格式。我可以获取这种格式的字符串,但不能获取 nsdate。如何获得像 27/12/2013 这样的 nsdate?

提前致谢!

【问题讨论】:

  • 这并不是真正的重复,因为他说他可以(已经)获得该格式的字符串,这就是那个问答所显示的。
  • 是的,@Inafziger 是正确的,它不是重复的,因为我希望 nsdate 不是字符串格式。在字符串中我知道如何转换,如果有任何相关链接,请告诉我。

标签: iphone nsdate


【解决方案1】:

您可以使用NSDateFormatter 格式化NSDate 变量。在你的情况下,你会像这样使用它:

NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"dd/MM/yyyy";
NSLog(@"my date is %@",[dateFormatter stringFromDate:yourNSDateVariable]);

【讨论】:

  • 正如我所说,我不想要字符串格式。我想要 nsdate 格式。
  • 您不能以任何格式设置 NSDate,因为它是一个时间值。当您打印或显示它时,它会被格式化(并转换为 NSString)。
【解决方案2】:

NSFormatter 非常容易做到这一点:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd/MM/yyyy"];

NSString *dateInString = [formatter stringFromDate:yourdate];

【讨论】:

    【解决方案3】:

    你不能“格式化”一个 NSDate,而只能是它的一个字符串表示(你说你已经知道怎么做)。查看 NSDate 类参考了解更多详情:http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSDate_Class/

    【讨论】:

      【解决方案4】:
      NSDateFormatter *oldFormatter = [[NSDateFormatter alloc] init];
      [oldFormatter setDateFormat: @"dd/MM/yyyy HH:mm:ss"];
      NSString *oldString = @"27/12/2013 21:30:21";
      NSDate *theDate= [oldFormatter dateFromString:oldString];
      
      
      NSDateFormatter *newFormatter = [[NSDateFormatter alloc] init];
      [newFormatter setDateFormat: @"dd/MM/yyyy"];
      NSString *yourString = [newFormatter stringFromDate:theDate];
      NSLog(@"%@", yourString);
      

      【讨论】:

        猜你喜欢
        • 2013-03-18
        • 1970-01-01
        • 1970-01-01
        • 2012-05-05
        • 2016-07-29
        • 1970-01-01
        • 1970-01-01
        • 2021-12-18
        • 1970-01-01
        相关资源
        最近更新 更多