iphone之按照本地格式显示日期

lidabo 阅读:67 2025-06-02 22:19:02 评论:0

我想按照不同国家/地区的本地格式显示日期。

我从这里得到了代码:Get the user's date format? (DMY, MDY, YMD)

NSString *base = @"MM/dd/yyyy"; 
NSLocale *locale = [NSLocale currentLocale]; 
NSString *format = [NSDateFormatter dateFormatFromTemplate:base options:0 locale:locale]; 

但是如何从格式中获取 dd,mm,yyyy的顺序?

请您参考如下方法:

这将为您提供currentLocale的格式:

NSString *dateComponents = @"ddMMyyyy"; 
NSLocale *locale = [NSLocale currentLocale]; 
NSString* format = [NSDateFormatter dateFormatFromTemplate:dateComponents options:0 locale:locale]; 

要以正确的格式为 NSDate打印 currentLocale对象,请尝试以下操作:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
NSLocale *locale = [NSLocale currentLocale]; 
[dateFormatter setLocale:locale]; 
 
NSString *dateComponents = @"ddMMyyyy"; 
NSString* format = [NSDateFormatter dateFormatFromTemplate:dateComponents options:0 locale:locale]; 
 
NSDate* date = [NSDate date]; 
[dateFormatter setDateFormat:format]; 
 
NSString *newDateString = [dateFormatter stringFromDate:date]; 
NSLog(@"Current date for locale: %@", newDateString); 

如果您确实想要dd,MM和yyyy元素的数字顺序,则可以像以下代码一样进行。它不是(!)漂亮,我真的认为您应该重新考虑是否有必要获取元素的顺序。
NSString *dateComponents = @"ddMMyyyy"; 
NSLocale *locale = [NSLocale currentLocale]; 
NSString* format = [NSDateFormatter dateFormatFromTemplate:dateComponents options:0 locale:locale]; 
 
int currentOrder = -1; 
int nextIndex = 0; 
 
int dd = -1; 
int MM = -1; 
int yyyy = -1; 
 
NSString* workingSubstring; 
 
while (dd == -1 || MM == -1 || yyyy == -1) 
{ 
    workingSubstring = [[format substringFromIndex:nextIndex] substringToIndex:2]; 
 
    if ([workingSubstring isEqualToString:@"dd"]) 
    { 
        dd = ++currentOrder; 
        nextIndex += 3; 
    } 
    else if ([workingSubstring isEqualToString:@"MM"]) 
    { 
        MM = ++currentOrder; 
        nextIndex += 3; 
    } 
    else if ([workingSubstring isEqualToString:@"yy"]) 
    { 
        yyyy = ++currentOrder; 
        nextIndex += 5; 
    } 
} 
 
NSLog(@"dd: %d, MM: %d, yyyy: %d", dd, MM, yyyy); 


标签:日期
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号