【问题标题】:Format date with NSDateFormatter使用 NSDateFormatter 格式化日期
【发布时间】:2013-06-12 12:45:32
【问题描述】:

我想将06-06-2013 1:51 PM 格式化为Jun 06,2013

我已经使用NSDateFormatter 尝试了所有可能的不同格式样式,但都失败了。

【问题讨论】:

  • 06-06-2013 1:51 PM 这是 NSString 还是 NSDate ?
  • 我怀疑您尝试过所有可能的组合。向我们展示您所做的几个。
  • @Rahul 它是 NSString
  • @Abizem: [dateFormatter setDateFormat:@"MMM dd,yyyy"]; NSDate *dateString = [dateFormatter dateFromString:strDate];
  • @Abizem: dateFromString 返回 nil

标签: objective-c nsdate nsdateformatter


【解决方案1】:

试试这个
首先,您需要将此字符串转换回 NSDate,然后再次使用格式化程序将 NSdate 转换为字符串。

    NSDateFormatter *dateFormatForDB = [[NSDateFormatter alloc] init];
    [dateFormatForDB setDateFormat:@"dd-MM-yyyy HH:mm a"]; //Note capital H is 4 24-hour time format
    NSDate *aDate = [[[NSDate alloc] initWithTimeInterval:0 sinceDate:[dateFormatForDB dateFromString:aDateString]] autorelease];
   if(aDate){
     [formatter setDateFormat:@"MMM dd,yyyy"];
     NSString *date = [formatter stringFromDate:aDate];
     [dateFormatForDB release];
    }

【讨论】:

    【解决方案2】:

    尝试使用这种格式

    [df setDateFormat:@"MMM dd,yyyy];
    

    【讨论】:

      【解决方案3】:

      通过查看您的格式,我认为这就是您正在寻找的......

      NSDateFormatter *df = [[NSDateFormatter alloc] init];
      [df setDateFormat:@"dd-MM-yyyy hh:mm a"];
      NSDate *newDate = [df dateFromString:dateString];
      NSDateFormatter *df2 = [[NSDateFormatter alloc] init];
      [df2 setDateFormat:@"MMM dd,yyyy"];
      NSString *formattedDate = [df2 stringFromDate:newDate];
      

      这将为您提供所需格式的日期字符串。如果您想要 24 小时格式的时间,请将 'hh' 替换为 'HH'。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-11
        • 2023-03-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多