String description of NSDate

前端 未结 4 1977
星月不相逢
星月不相逢 2021-01-31 10:30

I have the following code:

[ [NSDate date] descriptionWithLocale: @\"yyyy-MM-dd\" ]

I want it to return a date in the following format: \"2009-

相关标签:
4条回答
  • 2021-01-31 11:13

    You are using the wrong method. Instead try descriptionWithCalendarFormat:timeZone:locale:

    [[NSDate date] descriptionWithCalendarFormat:@"%Y-%m-%d"
                                        timezone:nil
                                          locale:nil];
    

    Also note that the method is expecting a different format than the one in your question. The full documentation for that can be found here.

    EDIT: Though as Mike noted, you really should be using NSDateFormatter. There are some problems with descriptionWithCalendarFormat:timezone:locale: that Apple mentions in the documentation.

    0 讨论(0)
  • 2021-01-31 11:25
    NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd"];
    NSString *dateString = [dateFormatter stringFromDate:[NSDate date]];
    [dateFormatter release];  // delete this line if your project uses ARC
    NSLog(@"%@",dateString); 
    
    0 讨论(0)
  • 2021-01-31 11:26

    If you don't have NSDate -descriptionWithCalendarFormat:timeZone:locale: available (I don't believe iPhone/Cocoa Touch includes this) you may need to use strftime and monkey around with some C-style strings. You can get the UNIX timestamp from an NSDate using NSDate -timeIntervalSince1970.

    0 讨论(0)
  • 2021-01-31 11:29

    Also note that for most cases, NSDateFormatter is to be preferred for its flexibility.

    There's also a significant performance benefit to be had from re-use of date formatters in many apps.

    0 讨论(0)
提交回复
热议问题