【问题标题】:Setting up AM/PM for my time in iOS为我在 iOS 中的时间设置 AM/PM
【发布时间】:2014-03-14 19:03:59
【问题描述】:

我原来的日期格式是:2014-03-14T10:35:24.537

所以我首先用 componentsSeparatedByString 分隔时间和日期,然后将后半部分(时间部分)保存到 NSString 时间,同时消除微秒。格式为 10:35。我试图让它添加 PM/AM 但 setDateFormat:@"hh:mm a" 没有这样做。我究竟做错了什么?

NSArray *components = [datestr componentsSeparatedByString:@"T"];
NSString *time = components[1];
time = [time substringWithRange:NSMakeRange(0, 5)];

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"hh:mm a"];
NSDate *timeFromString = [formatter dateFromString:time];
NSLog(@"%@", timeFromString);

当我记录 timeFromString 时,我得到一个空值。

编辑:我将上面的格式化程序更改为 [formatter setDateFormat:@"hh:mm"];现在 timeFromString 记录为: 2000-01-01 18:35:00 +0000 当数据输入为 2014-03-14T10:35:28.42

【问题讨论】:

  • 要将字符串转换为NSDate,您需要一种与您拥有的字符串匹配的格式。然后使用第二种格式来获取您想要的新字符串。
  • 你得到的输出是正确的。

标签: ios datetime time nsdate


【解决方案1】:

日期格式化程序用于将日期转换为字符串或从字符串转换。单个日期格式化程序不能用于在两种不同的日期格式之间进行转换。 (至少,不会在操作之间改变日期格式化程序。)

使用一个格式化程序将原始字符串转换为日期。该格式化程序不应包含 AM/PM,因为您的原始字符串不包含。

使用第二个格式化程序将日期转换为新字符串。如果您需要,该格式化程序应包括 AM/PM。

【讨论】:

    【解决方案2】:

    以下是您应该如何解析和转换日期:

    //the date string
    NSString *datestr = @"2014-03-14T10:35:24.537";
    
    //strip the date
    NSArray *components = [datestr componentsSeparatedByString:@"T"];
    NSString *time = components[1];
    time = [time substringWithRange:NSMakeRange(0, 5)];
    
    //parse string to a date
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"HH:mm"];
    NSDate *timeFromString = [formatter dateFromString:time];
    
    //Desired format
    NSDateFormatter *timeformat = [[NSDateFormatter alloc] init];
    [timeformat setDateFormat:@"hh:mm aa"];
    NSString *finalString = [timeformat stringFromDate:timeFromString];
    
    NSLog(@"final = %@",finalString);
    

    输出:

    决赛 = 上午 10:35

    【讨论】:

      猜你喜欢
      • 2014-12-31
      • 2022-01-19
      • 2018-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-29
      • 1970-01-01
      相关资源
      最近更新 更多