Подтвердить что ты не робот

Получить время и дату от NSDate

как я могу получить дату и время из NSDate. Я хочу видеть их отдельно. спасибо

4b9b3361

Ответ 1

NSDate *localDate = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
dateFormatter.dateFormat = @"MM/dd/yy";

NSString *dateString = [dateFormatter stringFromDate: localDate];



NSDateFormatter *timeFormatter = [[NSDateFormatter alloc]init];
timeFormatter.dateFormat = @"HH:mm:ss";


NSString *dateString = [timeFormatter stringFromDate: localDate];

Существует много разных способов представления даты и времени, поэтому проверьте NSDateFormatter для получения дополнительной информации.

Ответ 2

Я бы использовал NSDateComponents и NSCalendar, если вы действительно хотите иметь значения для минуты, часа и даты... Что-то вроде этого:

NSDateComponents *components = [[NSCalendar currentCalendar] components:NSHourCalendarUnit | NSMinuteCalendarUnit | NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit
                                                                   fromDate:[NSDate date]];

то вы можете использовать свойства компонентов для доступа к значению каждого компонента с компонентом. hour, component.year и т.д.

Также обратите внимание, что если вы собираетесь использовать пример NSDateFormatter - тогда вы должны помнить, что NSDateFormatter - это тяжелый объект, и вы должны его использовать, если это возможно...

Ответ 3

Я бы воспользовался следующими ответами:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];

NSString *formattedDateString = [dateFormatter stringFromDate:yourDate];
[dateFormatter release];

Преимущество заключается в том, что он установит форматирование на то, что пользователь установил в своих системных настройках. Таким образом, вам не нужно беспокоиться о таких элементах, как если пользователь предпочитает короткие даты в формате 10/31/11 или 31/10/11. См. documentation для списка доступных стилей.

Swift 2.2:

let dateFormatter = NSDateFormatter()
dateFormatter.dateStyle = NSDateFormatterStyle.MediumStyle
dateFormatter.timeStyle = .NoStyle
let myDateString = dateFormatter.stringFromDate(myNSDate)

dateFormatter.dateStyle = NSDateFormatterStyle.NoStyle
dateFormatter.timeStyle = .ShortStyle
let myTimeString = dateFormatter.stringFromDate(myNSDate)

Ответ 4

В Swift вы можете наслаждаться расширением, например:

// MARK: - NSDate extension -

extension NSDate {

    func toString() -> String {
        let dateFormatter = NSDateFormatter()
        dateFormatter.dateFormat = "dd MMMM yyyy - HH:mm"
        return dateFormatter.stringFromDate(self)
    }

    func getTime() -> String {
        let dateFormatter = NSDateFormatter()
        dateFormatter.dateFormat = "HH:mm"
        return dateFormatter.stringFromDate(self)
    }

    func getDate() -> String {
        let dateFormatter = NSDateFormatter()
        dateFormatter.dateFormat = "dd/MM/yyyy"
        return dateFormatter.stringFromDate(self)
    }
}

И тогда в любом месте вашего кода вы можете:

print("Time right now: \(NSDate().getTime())")