library jtapplecalendar how create calendario ios swift calendar

ios - how - jtapplecalendar youtube



iOS Swift que convierte el componente del calendario int mes al mes de cadena de estilo medio (3)

Quiero mostrar el calendario en este formato

al usuario. Una opción es usar el "rango de cadena" para obtener los componentes individuales del calendario. El segundo es conseguirlo usando NSCalendar, que a mi me parece el mejor (¿verdad?). Así que mi código es el siguiente. pero hay dos problemas.

  1. No obtengo el formulario de hora local "componentes de hora y minuto"
  2. Estoy recibiendo mes en Int. Quiero que esté en String (mes en mediumStyle)

¿Alguien sabe como conseguir lo que necesito? Imagen adjunta es exactamente lo que quiero lograr. Allí estoy usando tres UILabel uno para "fecha", segundo para "mes, año" y tercero para "tiempo".

Cualquier ayuda sería apreciada.

var inputDateString = "Jun/12/2015 02:05 Am +05:00" override func viewDidLoad() { super.viewDidLoad() let newDate = dateformatterDateString(inputDateString) let calendar = NSCalendar.currentCalendar() let components = calendar.components(.CalendarUnitHour | .CalendarUnitMinute | .CalendarUnitMonth | .CalendarUnitYear | .CalendarUnitDay, fromDate: newDate!) let hour = components.hour let minutes = components.minute let month = components.month let year = components.year let day = components.day println(newDate) println(components) println(day) // 12 println(month) // 6 -----> Want to have "Jun" here println(year) // 2015 println(hour) // 2 ------> Want to have the hour in the inputString i.e. 02 println(minutes) // 35 ------> Want to have the minute in the inputString i.e. 05 } func dateformatterDateString(dateString: String) -> NSDate? { let dateFormatter: NSDateFormatter = NSDateFormatter() dateFormatter.dateFormat = "MMM/dd/yyyy hh:mm a Z" // dateFormatter.timeZone = NSTimeZone(abbreviation: "UTC") dateFormatter.timeZone = NSTimeZone.localTimeZone() return dateFormatter.dateFromString(dateString) }


Puede utilizar DateFormatter de la siguiente manera:

extension Formatter { static let monthMedium: DateFormatter = { let formatter = DateFormatter() formatter.dateFormat = "LLL" return formatter }() static let hour12: DateFormatter = { let formatter = DateFormatter() formatter.dateFormat = "h" return formatter }() static let minute0x: DateFormatter = { let formatter = DateFormatter() formatter.dateFormat = "mm" return formatter }() static let amPM: DateFormatter = { let formatter = DateFormatter() formatter.dateFormat = "a" return formatter }() } extension Date { var monthMedium: String { return Formatter.monthMedium.string(from: self) } var hour12: String { return Formatter.hour12.string(from: self) } var minute0x: String { return Formatter.minute0x.string(from: self) } var amPM: String { return Formatter.amPM.string(from: self) } }

let date = Date() let dateMonth = date.monthMedium // "May" let dateHour = date.hour12 // "1" let dateMinute = date.minute0x // "18" let dateAmPm = date.amPM // "PM"


NSDateFormatter tiene monthSymbols , shortMonthSymbols y veryShortSymbols .

Así que prueba esto:

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


I am adding three types. Have a look. //Todays Date let todayDate = NSDate() let calendar = NSCalendar(identifier: NSCalendarIdentifierGregorian)! let components = calendar.components(.CalendarUnitYear | .CalendarUnitMonth | .CalendarUnitDay, fromDate: todayDate) var (year, month, date) = (components.year, components.month, components.day) println("YEAR: /(year) MONTH: /(month) DATE: /(date)") //Making a X mas Yr let morningOfChristmasComponents = NSDateComponents() morningOfChristmasComponents.year = 2014 morningOfChristmasComponents.month = 12 morningOfChristmasComponents.day = 25 morningOfChristmasComponents.hour = 7 morningOfChristmasComponents.minute = 0 morningOfChristmasComponents.second = 0 let morningOfChristmas = NSCalendar.currentCalendar().dateFromComponents(morningOfChristmasComponents)! let formatter = NSDateFormatter() formatter.dateStyle = NSDateFormatterStyle.LongStyle formatter.timeStyle = .MediumStyle let dateString = formatter.stringFromDate(morningOfChristmas) print("dateString : /(dateString)") //Current month - complete name let dateFormatter: NSDateFormatter = NSDateFormatter() let months = dateFormatter.monthSymbols let monthSymbol = months[month-1] as! String println("monthSymbol : /(monthSymbol)") Print Results: YEAR: 2015 MONTH: 10 DATE: 9 dateString : December 25, 2014 at 7:00:00 AM monthSymbol : October