【问题标题】:How to retrieve NSDate from date time format?如何从日期时间格式中检索 NSDate?
【发布时间】:2013-08-04 06:05:06
【问题描述】:

我想检查两个日期:一个在我的 plist 中,格式如下 NSString 2013-08-03 12:26:33 +0000

但是,我只需要2013-08-03,我怎样才能删除其余的时间值?请帮我。

我正在使用以下代码检查日期,它对我有用。但我只需要检索2013-08-03 12:26:33 +0000中的日期部分

 NSString *start = @"2013-08-03 ";
    NSString *end = @"2013-08-05";

    NSDateFormatter *f = [[NSDateFormatter alloc] init];
    [f setDateFormat:@"yyyy-MM-dd"];
    NSDate *startDate = [f dateFromString:start];
    NSDate *endDate = [f dateFromString:end];


    NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    NSDateComponents *components = [gregorianCalendar components:NSDayCalendarUnit
                                                        fromDate:startDate
                                                          toDate:endDate
                                                         options:0];

    NSLog(@"%ld", [components day]);

【问题讨论】:

  • 你到底想要什么?只想要给定“2013-08-03 12:26:33”日期中的“2013-08-03”之类的字符串,还是分别想要日期的每一部分(日、月和年)?
  • 我想要这样的“2013-08-03”

标签: ios objective-c nsstring nsdate


【解决方案1】:

所以,如果您只想要一个带有日期部分的字符串,只需使用 dateFormatter,类似于您之前所做的。

假设你有一个日期的引用,你想要一个字符串的一部分,我封装了一个方法,它返回一个带有日期部分的字符串:

-(NSString*) stringDatePartOf:(NSDate*)date
{
    NSDateFormatter *formatter = [[NSDateFormatter new];
    [formatter setDateFormat:@"yyyy-MM-dd"];

    return [formatter stringFromDate:date];
}

例如,如果您传递一个值为 2013-08-03 12:26:33 +0000 的日期,则此方法将返回 2013-08-03 ,如您所愿。

【讨论】:

猜你喜欢
  • 2022-01-24
  • 1970-01-01
  • 1970-01-01
  • 2020-06-02
  • 1970-01-01
  • 2012-06-03
  • 1970-01-01
  • 2013-12-22
  • 2020-06-02
相关资源
最近更新 更多