---
title: "date(withNaturalLanguageString:locale:)"
framework: foundation
role: symbol
role_heading: Type Method
path: "foundation/nsdate/date(withnaturallanguagestring:locale:)"
---

# date(withNaturalLanguageString:locale:)

Creates and returns a date object set to the date and time specified by a given string.

## Declaration

```swift
class func date(withNaturalLanguageString string: String, locale: Any?) -> Any?
```

## Parameters

- `string`: A string that contains a colloquial specification of a date, such as “last Tuesday at dinner,” “3pm December 31, 2001,” “12/31/01,” or “31/12/01.”
- `locale`: An NSDictionary object containing locale data. To use the user’s preferences, you can use [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]. If you pass nil or an instance of NSLocale, NSDate uses the system default locale—this is not the same as the current user’s locale.

## Return Value

Return Value A new NSDate object set to the date and time specified by string as interpreted according to locale.

## Discussion

Discussion This method supports only a limited set of colloquial phrases, primarily in English. It may give unexpected results, and its use is strongly discouraged. To create a date object from a string, you should use a date formatter object instead (see DateFormatter and Data Formatting Guide). The keys and values that represent the locale data from locale are used when parsing the string. In addition to the locale keys listed in the class description, these keys are used when parsing natural language strings: NSDateTimeOrdering NSEarlierTimeDesignations NSHourNameDesignations NSLaterTimeDesignations NSNextDayDesignations NSNextNextDayDesignations NSPriorDayDesignations NSThisDayDesignations NSYearMonthWeekDesignations

## See Also

### Legacy Operations

- [date(withNaturalLanguageString:)](foundation/nsdate/date(withnaturallanguagestring:).md)
- [date(with:)](foundation/nsdate/date(with:).md)
- [init(string:)](foundation/nsdate/init(string:).md)
- [addTimeInterval(_:)](foundation/nsdate/addtimeinterval(_:).md)
- [date(withCalendarFormat:timeZone:)](foundation/nsdate/date(withcalendarformat:timezone:).md)
- [description(withCalendarFormat:timeZone:locale:)](foundation/nsdate/description(withcalendarformat:timezone:locale:).md)
