【问题标题】:NSDate comparison in custom format Issue自定义格式的 NSDate 比较问题
【发布时间】:2011-05-23 12:20:48
【问题描述】:

我想比较两个日期。我正在以 yyyy-dd-mm 格式获取设备日期,并从 web 服务获取 mm-dd-yyyy。我想更改设备日期格式并在NSDate 对象中获取更改后的日期。这是我的代码:

 NSDate *today = [[NSDate alloc] init];     
 NSLog(@"today : %@", today);
 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
 [dateFormatter setDateFormat:@"MM dd yy"];
 NSString *tString = [dateFormatter stringFromDate:today];
 NSLog(@"tString : %@",tString);
 NSDate *date = [dateFormatter dateFromString:tString];
 NSLog(@"date : %@",date);

【问题讨论】:

  • 这个 [dateFormatter set] 有什么作用?

标签: ios objective-c cocoa-touch nsdate


【解决方案1】:

您是说来自网络服务的日期是 mm-dd-yyyy 格式..然后像这样将其转换为 NSDate

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
 [dateFormatter setDateFormat:@"MM-dd-yyyy"];
NSDate *convertedDate = [dateFormatter dateFromString:yourDateStringFromWeb];

您已经有了设备日期。现在您可以通过多种方式比较两个 NSDate 对象。请参阅 thisthis..

【讨论】:

  • @Krishnabhadra:我试过上面一个。但是当我将其转换为 NSdata 对象并再次在控制台上打印时,格式从 MM-dd-yyyy
  • 输出是:今天:2011-05-23 12:38:49 +0000
  • iSwap,主要是你可以在两个 NSDate 对象之间进行比较,你不必让它们成为字符串..
  • "我想更改设备日期格式并在 NSDate 对象中获取更改后的日期",NSDate 没有任何格式。格式仅当您将其转换为字符串以显示时..
  • @iSwap,确认这一点,您正在从网络服务(如 5-27-2011)获取字符串中的日期,您想将其转换为 NSDate 对象。然后将其与设备中已有的日期进行比较(这是格式为 yyyy-dd-mm 的字符串,如 2011-27-5)。这是你的要求吗?
猜你喜欢
  • 2011-07-30
  • 2011-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-01
相关资源
最近更新 更多