Форматировщик даты Swift возвращает null для строк даты [duplicate]

Q: - ... "Можно использовать любой класс, реализующий интерфейс?" A: - Да.

Q: -... «Когда вам это нужно?» A: - Каждый раз, когда вам нужен класс (ы), который реализует интерфейс (ы).

blockquote>

Примечание: мы не смогли создать интерфейс, не реализованный классом - Правда.

  • почему?
  • , потому что интерфейс имеет только прототипы методов, а не определения (просто имена функций, а не их логика)

AnIntf ​​anInst = new Aclass (); // мы могли бы сделать это, только если Aclass реализует AnIntf. // anInst будет иметь ссылку на Aclass.

blockquote>

Примечание: Теперь мы могли бы понять что происходит, если Bclass и Cclass реализуют один и тот же Dintf.

Dintf bInst = new Bclass();  
// now we could call all Dintf functions implemented (defined) in Bclass.

Dintf cInst = new Cclass();  
// now we could call all Dintf functions implemented (defined) in Cclass.

Что мы имеем: те же интерфейсные прототипы (имена функций в интерфейсе) и вызываем разные реализации.

Библиография: Прототипы - википедия

15
задан Leo Dabus 5 September 2015 в 03:01
поделиться

1 ответ

Вам просто нужно установить свойство календаря даты форматирования:

Xcode 8.2.1 • Swift 3.0.2

let dateFormatter = DateFormatter()
dateFormatter.calendar = Calendar(identifier: .iso8601)
dateFormatter.locale = Locale(identifier: "es")
dateFormatter.dateFormat = "dd 'de' MMMM"
dateFormatter.date(from: "8 de octubre")   // "Oct 8, 2000, 1:00 AM"
5
ответ дан Leo Dabus 21 August 2018 в 04:49
поделиться
  • 1
    Для меня это работало без установки календаря. Можете ли вы воспроизвести проблему без ее установки? – zneak 5 September 2015 в 02:36
  • 2
    Да, не устанавливая календарь, он возвращает нуль. Это зависит от вашего местоположения – Leo Dabus 5 September 2015 в 02:36
  • 3
    Я попробовал установить формат даты для каждого календаря там , и единственные, с которыми форматер не разбирает даты, - это китайский, иврит, исламский, исламский гражданский, персидский и индийский; они терпят неудачу по всем направлениям, а не только на две даты в месяц. Каков идентификатор вашего начального календаря? – zneak 5 September 2015 в 02:46
  • 4
    Извините, что я не понимаю ваш вопрос, но я использую календарь ISO8601. Проблема в том, что вы никого не назначаете. Григорианский календарь также работает для меня здесь – Leo Dabus 5 September 2015 в 02:48
  • 5
    И установка его на григорианский снова устраняет проблему? На самом деле это не так. Рассмотрите возможность подачи отчета об ошибке, если это действительно работает. – zneak 5 September 2015 в 02:54
Другие вопросы по тегам:

Похожие вопросы: