如何在iOS中获取本地格式化的日期图案字符串?

时间:2012-08-25 20:13:43

标签: objective-c ios ios5 nsdate nsdateformatter

  

可能重复:
  How to determine if locale's date format is Month/Day or Day/Month?

我现在已经挣扎了一段时间而且我被困住了!我要么需要一个“mm-dd-yyyy”或“08-25-2012”形式的本地格式化模式日期字符串。我该怎么做?使用dateFormat?请帮帮我!

2 个答案:

答案 0 :(得分:8)

NSDateFormatter有一个便捷类方法:

[NSDateFormatter localizedStringFromDate:date dateStyle:NSDateFormatterShortStyle timeStyle:NSDateFormatterNoStyle];

您可以指定NSDateFormatterNoStyle,.. ShortStyle,.. MediumStyle或..LongStyle

答案 1 :(得分:3)

您可以将NSDateFormatter与MM-dd-yyyy一起使用,然后使用应用于格式化程序的NSTimeZone来调整本地时区。

此:

NSDate *date = [[NSDate alloc] init];
NSLog(@"%@", date);

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM-dd-yyyy hh:mm"];
NSString *dateString = [dateFormatter stringFromDate:date];

NSLog(@"%@", dateString);

NSTimeZone *timeZone = [NSTimeZone localTimeZone];
[dateFormatter setTimeZone:timeZone];
NSLog(@"adjusted for timezone: %@", [dateFormatter stringFromDate:date]);

输出:

2012-08-26 08:30:53.741 Craplet[2585:707] 2012-08-26 12:30:53 +0000
2012-08-26 08:30:53.742 Craplet[2585:707] 08-26-2012 08:30
2012-08-26 08:30:53.743 Craplet[2585:707] adjusted for timezone: 08-26-2012 08:30