【问题标题】:How to change date format on ios?如何在ios上更改日期格式?
【发布时间】:2026-01-31 03:45:01
【问题描述】:

我有这样的日期:2012 年 6 月 4 日星期一 14:13:00 GMT 并想删除显示的时间,以便我可以有这样的东西:Mon, 04 Jun 2012

我尝试了下面的代码:

NSString *dateTex = [[stories objectAtIndex: storyIndex] objectForKey: @"date"];
NSLog(@"the object value is:%@",dateTex);    

//changing dates format
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"];    
NSDate *date = [dateFormatter dateFromString:dateTex];
[dateFormatter release];

NSDateFormatter *dateFormatter2 = [[NSDateFormatter alloc] init];
[dateFormatter2 setDateFormat:@"EEE, dd MMM yyyy"];
NSString *dateText = [dateFormatter2 stringFromDate:date];
[dateFormatter2 release];
NSLog(@"the object value is:%@",dateText);

日期从 xml 文件中解析并保存在 NSString dateTex 中。然后我尝试更改格式并将新日期保存在NSString dateText。但是,当我尝试打印 dateText 变量时,我得到the object value is (null)。 有什么想法吗?

【问题讨论】:

    标签: ios date format


    【解决方案1】:

    你可以试试下面的代码:

    NSString *dateTex = [[stories objectAtIndex: storyIndex] objectForKey: @"date"];
    NSLog(@"the object value is:%@",dateTex);    
    
     //changing dates format
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"]; 
    NSDate *date = [dateFormatter dateFromString:dateTex];
    [dateFormatter release];
    
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateStyle:NSDateFormatterShortStyle];
    [dateFormatter setDateFormat:@"EEE, dd MMM yyyy"];
    
    NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
    [dateFormatter setLocale:enUSPOSIXLocale];
    
    NSString *my_date_string = [dateFormatter stringFromDate:date];
    //my_date_string returns like value Tue 05 jun 2012
    

    欢迎!

    【讨论】:

    • 为什么要设置NSDateFormatterShortStyleNSLocale