格式化日期为2行

时间:2015-05-19 16:12:40

标签: swift date

我希望日期在2行

public func smdt(date:NSDate)->NSString{
    var dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "h:mma dd MMMM yyyy"
    return dateFormatter.stringFromDate(date)
}

我在字符串中添加时间,但我想在“dd”之前开始新行

示例:h:mma\ndd MMMM yyyy

应该是:

  

下午7点12分

     

2015年5月19日

.dateFormat中,\n不起作用......唯一可行的方法是检测PM和19之间的第一个空格,并将其替换为\n。怎么做?

它必须适用于地球上的每个时区。这意味着我无法使用AM / PM进行分离......

1 个答案:

答案 0 :(得分:4)

您的代码应该有效。也许它让你感到困惑,例如,如果你从操场上检查你的返回值的值,那么值就是这样:

"6:21PM\n19 May 2015"

但是,如果我使用你的代码:

public func smdt(date:NSDate)->NSString{
    var dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "h:mma\ndd MMMM yyyy"
    return dateFormatter.stringFromDate(date)
}

使用println调用该值:

println(smdt2(NSDate()))

打印出来的价值如下:

6:22PM
19 May 2015

所以你可以使用你已经尝试过的代码。

但是你也可以像这样分割小时和日/月并稍后结束:

public func smdt(date:NSDate)->NSString{
    var dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "h:mma"
    var hour = dateFormatter.stringFromDate(date)
    dateFormatter.dateFormat = "dd MMMM yyyy"

    var otherPart = dateFormatter.stringFromDate(date)
    return "\(hour)\n\(otherPart)"
}