# NSDate class reference

jeremy@hksys.com
scottc@net-community.com
richard@brainstorm.co.uk
hugo@algoriddim.com
Generated at 2025-09-10 09:16:48 +0000
2024 Free Software Foundation, Inc.
Software documentation for the NSDate class
Foundation/NSDate.h
NSCoding
NSCopying
An `NSDate` object encapsulates a constant date/time to a high resolution represented by the `NSTimeInterval` typedef. `NSDate` has methods relating to times and time differences in the abstract, but not calendar dates or time zones. These features are added in the NSCalendarDate subclass. The NSTimeZone class handles time zone information.
date
Returns an autoreleased instance with the current date/time.
dateWithNaturalLanguageString:
string
Returns an autoreleased instance representing the date and time given by string. The value of string may be a 'natural' specification as specified by the preferences in the user defaults database, allowing phrases like 'last tuesday'
dateWithNaturalLanguageString:
string
locale:
locale

Returns an autoreleased instance representing the date and time given by string. The value of string may be a 'natural' specification as specified by the preferences in the user defaults database, allowing phrases like 'last tuesday'

The locale contains keys such as -
NSDateTimeOrdering
Controls the use of ambiguous numbers. This is done as a sequence of the letters D(ay), M(onth), Y(ear), and H(our). YMDH means that the first number encountered is assumed to be a year, the second a month, the third a day, and the last an hour.
NSEarlierTimeDesignations
An array of strings for times in the past.
Defaults are ago, last, past, prior
NSHourNameDesignations
An array of arrays of strings identifying the time of day. Each array has an hour as its first value, and one or more words as subsequent values.
Defaults are: (0, midnight), (10, morning), (12, noon, lunch), (14, afternoon), (19, dinner).
NSLaterTimeDesignations
An array of strings for times in the future.
Default is next
NSNextDayDesignations
The day after today. Default is tomorrow.
NSNextNextDayDesignations
The day after tomorrow. Default is nextday.
NSPriorDayDesignations
The day before today. Default is yesterday.
NSThisDayDesignations
Identifies the current day. Default is today.
NSYearMonthWeekDesignations
An array giving the word for year, month, and week.
Defaults are year, month and week.
dateWithString:
description
Returns an autoreleased instance with the date and time value given by the string using the ISO standard format YYYY-MM-DD HH:MM:SS +/-HHHMM (all the fields of which must be present).
dateWithTimeInterval:
seconds
sinceDate:
date
Returns an autoreleased NSDate instance whose value is offset from that of the given date by the specified interval in seconds.
dateWithTimeIntervalSince1970:
seconds
Returns an autoreleased instance with the offset from the unix system reference date of 1 January 1970, GMT.
dateWithTimeIntervalSinceNow:
seconds
Returns an autoreleased instance with the offset from the current date/time given by seconds (which may be fractional).
dateWithTimeIntervalSinceReferenceDate:
seconds
Returns an autoreleased instance with the offset from the OpenStep reference date of 1 January 2001, GMT.
distantFuture
Returns an autoreleased instance with the date/time set in the far future.
distantPast
Returns an autoreleased instance with the date/time set in the far past.
now
Returns an autoreleased instance with the date/time set to the time of access.
timeIntervalSinceReferenceDate
Returns the time interval between the reference date and the current time.
Returns the time interval between the current date and the reference date (1 January 2001, GMT).
addTimeInterval:
seconds
Returns an autorelease date instance formed by adding the specified time interval in seconds to the receiver's time interval.
compare:
otherDate
Returns the time interval between the receivers value and the OpenStep reference date of 1 Jan 2001 GMT.
dateByAddingTimeInterval:
ti
Returns an autoreleased NSDate instance whose value is offset from that of the receiver by the specified interval.
dateWithCalendarFormat:
formatString
timeZone:
timeZone
Returns an autoreleased instance of the NSCalendarDate class whose date/time value is the same as that of the receiver, and which uses the formatString and timeZone specified.
description
Returns a string representation of the receiver formatted according to the default format string, time zone, and locale.
descriptionWithCalendarFormat:
format
timeZone:
aTimeZone
locale:
l
Returns a string representation of the receiver formatted according to the specified format string, time zone, and locale.
descriptionWithLocale:
locale
Returns a string representation of the receiver formatted according to the default format string and time zone, but using the given locale.
earlierDate:
otherDate
Returns the earlier of the receiver and otherDate.
If the two represent identical date/time values, returns the receiver.
init
Returns an instance initialised with the current date/time.
initWithString:
description
Returns an instance with the date and time value given by the string using the ISO standard format YYYY-MM-DD HH:MM:SS +/-HHHMM (all the fields of which must be present).
initWithTimeInterval:
secsToBeAdded
sinceDate:
anotherDate
Returns an instance with the given offset from anotherDate.
initWithTimeIntervalSince1970:
seconds
Returns an instance with the offset from the unix system reference date of 1 January 1970, GMT.
initWithTimeIntervalSinceNow:
secsToBeAdded
Returns an instance with the offset from the current date/time.
initWithTimeIntervalSinceReferenceDate:
secs
Returns an instance with the given offset from the OpenStep reference date of 1 January 2001, GMT.
isEqual:
other
Returns `NO` if other is not a date, otherwise returns the result of calling the -isEqualToDate: method.
isEqualToDate:
other
Returns whether the receiver is exactly equal to other, to the limit of the NSTimeInterval precision.
This is the behavior of the current MacOS-X system, not that of the OpenStep specification (which counted two dates within a second of each other as being equal).
The old behavior meant that two dates equal to a third date were not necessarily equal to each other (confusing), and meant that there was no reasonable way to use a date as a dictionary key or store dates in a set.
laterDate:
otherDate
Returns the earlier of the receiver and otherDate.
If the two represent identical date/time values, returns the receiver.
timeIntervalSince1970
Returns the time interval between the receivers value and the unix system reference date of 1 January 1970, GMT.
timeIntervalSinceDate:
otherDate
Returns the time interval between the receivers value and that of the otherDate argument. If otherDate is earlier than the receiver, the returned value will be positive, if it is later it will be negative.
For current (2011) OSX compatibility, this method returns NaN if otherDate is `nil`... do not write code depending on that behavior.
timeIntervalSinceNow
Returns the time interval between the receivers value and the current date/time. If the receiver represents a date/time in the past this will be negative, if it is in the future the returned value will be positive.
timeIntervalSinceReferenceDate
Returns the time interval between the receivers value and the OpenStep reference date of 1 Jan 2001 GMT.