Преобразование даты во время Unix (в секундах с 1970 года)

#iphone #ios4 #iphone-sdk-3.0 #nsdate #nsdateformatter

#iPhone #ios4 #iphone-sdk-3.0 #nsdate #nsdateformatter

Вопрос:

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

Например, если в моем приложении указана дата, 5-MAY-2011 00:00:00 0000 тогда мне нужна временная метка 1304553600 (количество секунд между этой датой и 1 января 1970 года).).

Ответ №1:

Предположим, что ваша дата является действительной датой.

 NSDateFormatter *dateF = [[NSDateFormatter alloc] init];
[dateF setDateStyle:NSDateFormatterFullStyle]; //this format will be according to your own.

NSDate *todayDate = [dateF dateFromString: @"5-MAY-2011 00:00:00  0000"]; //please note, this date format must match the NSDateFormatter Style, or else return null.

NSTimeInterval inter = [todayDate timeIntervalSince1970]; //return as double
  

Для получения дополнительной информации, пожалуйста, обратитесь к этому руководству и NSDateFormatter.

Ответ №2:

Это данный метод для класса NSDate. посмотрите на это

 - (NSTimeInterval)timeIntervalSince1970
  

он возвращает вам секунды (то, что вы хотите).

Ответ №3:

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