-1

我从 Web 服务获取日期和时间作为字符串,这些日期和时间看起来像“2013-10-29”和“11:30”(或“23:30”),但我想显示像“2013 年 10 月 29 日”和时间是“11:30 AM”(或“11:30 PM”)。关于此类问题,我已经经历了很多答案,但是当我尝试返回“null”而没有错误或警告时。请帮助我...

4

3 回答 3

11

应用此代码,使用您的属性更改手动编码的时间和日期,它应该可以工作。

NSDateFormatter * dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate * dateNotFormatted = [dateFormatter dateFromString:@"2013-10-29"];
[dateFormatter setDateFormat:@"d MMM.YYYY"];    
NSString * dateFormatted = [dateFormatter stringFromDate:dateNotFormatter];

[dateFormatter setDateFormat:@"HH:mm"];
NSDate * timeNotFormatted = [dateFormatter dateFromString:@"11:30"];
[dateFormatter setDateFormat:@"hh:mm a"];    
NSString * timeFormatted = [dateFormatter stringFromDate:timeNotFormatter];

另一种选择是将更严格的时间和日期放在一个字符串中,并使用以下格式:

    [dateFormatter setDateFormat:@"d MMM.YYYY at hh:mm a"];    
于 2013-10-28T11:01:55.850 回答
0

使用NSDateFormatter。在第一种情况下,您的格式将是:,,,@"yyyy-MM-dd"@"HH:mm"第二种情况下:@"dd MMM.yyyy"@"hh:mm a"

于 2013-10-28T10:55:35.343 回答
0

首先结合日期和时间,如“2013-10-29 11:30”

比使用以下函数,如 [self dateFormat:@"yyyy-NN-dd HH:ss" newFormat:@"dd MMM.yyyy hh:mm a"]

- (NSString*) dateFormat : (NSString*)date currentFormat:(NSString*) currentFormat newFormat : (NSString*) newFormat
{
    NSString *dateStr = date;
    NSDateFormatter *dtF = [[NSDateFormatter alloc] init];
    [dtF setDateFormat:currentFormat];
    NSDate *d = [dtF dateFromString:dateStr];

    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:newFormat];
    NSString * strFinalDate = [dateFormat stringFromDate:d];
    NSLog(@"%@",strFinalDate);

    [dtF release];
    [dateFormat release];

    return strFinalDate;
}

如果您希望日期和时间不同于使用 NSArray 将其分开。

于 2013-10-28T10:57:56.813 回答