как я могу получить дату и время из NSDate. Я хочу видеть их отдельно. спасибо
Получить время и дату от NSDate
Ответ 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())")