如何从NSDate中检索日期和时间。 我想分开看他们。 感谢
答案 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)
SWIFT 4 版本
{"numUsuario":"K252525","nombreCompleto":"Nuevo usuario"}