如何在iOS中使用NSDateFormatter将日期类型更改为“2013年1月21日上午5:30”

时间:2013-04-02 06:58:51

标签: iphone ios nsdateformatter

我希望将日期格式从“ 2013-01-21 11:55:00 ”更改为“ 2013年1月21日上午5:30 ”。< / p>

我尝试了以下代码。但它给出了一个固定的日期。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterMediumStyle];

NSDate *myDate = [NSDate dateWithTimeIntervalSinceReferenceDate:162000];
NSLog(@"%@",[dateFormatter stringFromDate:myDate]);

以上代码提供恒定输出:2001年1月3日凌晨2:30:00

但就我而言,约会是动态的。

3 个答案:

答案 0 :(得分:2)

    NSString *firstDate = @"2013-01-21 11:55:00";
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy'-'MM'-'dd  HH':'mm':'ss"];
    NSDate *date = [dateFormatter dateFromString:firstDate];
    [dateFormatter setDateFormat:@"MMM d, yyyy h:mm a"];

    NSLog(@"Expected Result___ %@",[dateFormatter stringFromDate:date]);

答案 1 :(得分:1)

试试这个

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

[dateFormatter setDateFormat:@"MMM d, yyyy h:mm a"];

NSDate *myDate = [NSDate dateWithTimeIntervalSinceReferenceDate:162000];
NSLog(@"%@",[dateFormatter stringFromDate:myDate];

尝试[NSDate date]而不是[NSDate dateWithTimeIntervalSinceReferenceDate:162000]

答案 2 :(得分:0)

你得到恒定的输出,因为你给出了162000的常量输入!!!

首先使用格式从字符串中获取日期,然后使用新格式从获取日期获取字符串

使用此输出格式为

@"MMM d, yyyy h:mm a"

NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"MMM d, yyyy h:mm a"];
NSLog(@"%@",[dateFormatter stringFromDate:[NSDate date]]);