【问题标题】:Date format advice日期格式建议
【发布时间】:2012-11-25 21:55:32
【问题描述】:

从我的应用程序通过电子邮件发送 PDF 时,我使用以下内容获取文件标题

NSString *date = [[NSDate date] description]; NSString *fileName = [NSString stringWithFormat:@"%@ %@.pdf", self.certificate.certificateType.title, date];

它给了我一个文件名:

myfilename.pdf 2012-11-25 21:35:45 + 0000

有没有办法摆脱+0000

【问题讨论】:

    标签: objective-c xcode nsdate


    【解决方案1】:

    您通常希望避免在文件名中使用空格。

    NSDate *date = [NSDate date];
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    formatter.dateFormat = @"yyyy-MM-dd_HH-mm-ss";
    NSString *dateString = [formatter stringFromDate:date];
    NSString *fileName = [NSString stringWithFormat:@"%@_%@.pdf", self.certificate.certificateType.title, dateString];
    

    【讨论】:

    • 你想要 HH(24 小时),而不是 hh(12 小时)。
    • 你需要 mm,而不是 MM 分钟(MM 是月份)。
    【解决方案2】:

    description 方法不应该用于除调试之外的任何事情。它的实现可以随时改变(对于NSDate,它在过去已经改变了)。

    更好的解决方案是使用具有特定日期格式的NSDateFormatter 以确保结果一致。

    @Eugene 的回答举了一个很好的例子。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-11
      • 1970-01-01
      • 2016-02-19
      • 1970-01-01
      • 1970-01-01
      • 2021-02-14
      • 1970-01-01
      • 2010-11-03
      相关资源
      最近更新 更多