从 NSDate 截断时间 SWIFT

Truncate time from NSDate SWIFT

我想获取当前日期为 9 月 15 日,2015.I 首先尝试使用 as

从 NSDate 中删除时间
  let calendar = NSCalendar.currentCalendar()
  let components = calendar.components(.CalendarUnitDay | .CalendarUnitMonth | .CalendarUnitYear, fromDate: date)
  let currentdate = NSCalendar.currentCalendar().dateFromComponents(components)
  println(currentdate)

然而,这不会截断时间也使用了这种方法,它给了我单独的组件

let date = NSDate()
let calendar = NSCalendar.currentCalendar()
let components = calendar.components(.CalendarUnitDay | .CalendarUnitMonth | .CalendarUnitYear, fromDate: date)
let year =  components.year
let month = components.month
let day = components.day
let monthname = components.weekday

但问题是我在 int 中得到月份,第二个 method.I 想要对应 1 作为 January。我如何获得我的结果?

抱歉这个问题..我应该了解 dateFormatter。我从数字中得到了月份名称所以问题解决了,但是如果有更好的方法..请说

    let date = NSDate()
    let calendar = NSCalendar.currentCalendar()
    let components = calendar.components(.CalendarUnitDay | .CalendarUnitMonth | .CalendarUnitYear, fromDate: date)

    let year =  components.year
    let month = components.month
    let day = components.day

    let dateFormatter: NSDateFormatter = NSDateFormatter()
    let months = dateFormatter.shortMonthSymbols
    let monthSymbol = months[month-1] as! String
    println(monthSymbol)

你可以使用 NSDateFormatter 来格式化你的日期

let formatter = NSDateFormatter()
formatter.dateFormat = "MMM dd,yyyy"
print(formatter.stringFromDate(NSDate()))

这里是用你想要的格式打印当前日期的代码:

let today = NSDate().dateByAddingTimeInterval(0)     

let dateFormatter = NSDateFormatter()
dateFormatter.dateStyle = .MediumStyle

let dateToPrint: NSString = dateFormatter.stringFromDate(today) as NSString

println(dateToPrint.uppercaseString)