通过NSDate获取时间和日期

时间:2011-04-16 19:55:02

标签: iphone objective-c date time nsdate

如何从NSDate中检索日期和时间。 我想分开看他们。 感谢

5 个答案:

答案 0 :(得分:50)

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以获取更多信息。

答案 1 :(得分:17)

如果你真的想要分钟,小时和日期的值,我会选择使用NSDateComponents和NSCalendar ... 像这样:

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

然后您可以使用组件的属性来访问component.hour,component.year等每个组件的值。

另请注意,如果您使用NSDateFormatter示例 - 那么您应该记住NSDateFormatter是一个重型对象,如果可能,您应该重用它...

答案 2 :(得分:10)

我会在其他答案中使用以下内容:

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)

答案 3 :(得分:1)

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())") 

答案 4 :(得分:0)

@McCygnus答案的

SWIFT 4 版本

{"numUsuario":"K252525","nombreCompleto":"Nuevo usuario"}