在XCode中的单独UILabel上显示日期和时间

时间:2013-12-30 13:14:35

标签: ios objective-c iphone xcode

我正在为我的iOS应用添加日期和时间。我已成功添加日期,但希望在不同的标签上显示时间。

我的代码看起来像这样,但我收到错误'重新定义dateFormatter'。如何在单独的标签上拨打电话?

    NSLocale *en_US_POSIX = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
    assert(en_US_POSIX != nil);

    // The Date

    //set the date label correctly
    //format the date to July 9 2013 - MMMM d yyyy
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setLocale:en_US_POSIX];
    [dateFormatter setDateFormat:@"dd-MM-yyyy"];
    NSDate *dateFromString = [[NSDate alloc] init];
//    dateFromString = [dateFormatter dateFromString:curDate];
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"MMMM d yyyy"];
    NSString *theDate = [dateFormat stringFromDate:dateFromString];
    labelDate.text = theDate;

// The Time



    NSDate *currentTime = [NSDate date];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"hh-mm"];
    NSString *resultString = [dateFormatter stringFromDate: currentTime];
    labelTime.text = resultString;

3 个答案:

答案 0 :(得分:3)

您只需要删除重新初始化NSDateFormatter的行。

正确的代码是:

NSLocale *en_US_POSIX = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
assert(en_US_POSIX != nil);

// The Date

//set the date label correctly
//format the date to July 9 2013 - MMMM d yyyy
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:en_US_POSIX];
[dateFormatter setDateFormat:@"dd-MM-yyyy"];
NSDate *dateFromString = [[NSDate alloc] init];
//    dateFromString = [dateFormatter dateFromString:curDate];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMMM d yyyy"];
NSString *theDate = [dateFormat stringFromDate:dateFromString];
labelDate.text = theDate;

// The Time

NSDate *currentTime = [NSDate date];
[dateFormatter setDateFormat:@"hh-mm"];
NSString *resultString = [dateFormatter stringFromDate: currentTime];
labelTime.text = resultString;

答案 1 :(得分:0)

老兄只是改变了NSDateFormatter名称:)就是这样,你的问题解决了:)

答案 2 :(得分:0)

试试这个

    NSLocale *en_US_POSIX = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
    assert(en_US_POSIX != nil);

    //format the date to July 9 2013 - MMMM d yyyy
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setLocale:en_US_POSIX];
    [dateFormatter setDateFormat:@"dd-MM-yyyy"];
    NSDate *dateFromString = [[NSDate alloc] init];

    // dateFromString = [dateFormatter dateFromString:curDate];
    [dateFormat setDateFormat:@"MMMM d yyyy"];
    NSString *theDate = [dateFormat stringFromDate:dateFromString];
    labelDate.text = theDate;

    // The Time
    NSDate *currentTime = [NSDate date];
    [dateFormatter setDateFormat:@"hh-mm"];
    NSString *resultString = [dateFormatter stringFromDate: currentTime];
    labelTime.text = resultString;