DateFormatter, отображающий неправильный год, но непоследовательно [дублировать]

Для всех, кто интересуется решением с пакетом / поддержкой, библиотека MoreLINQ предоставляет метод расширения Batch , который соответствует вашему запросу:

IEnumerable source = "Example string";
IEnumerable> chunksOfThreeChars = source.Batch(3);

Реализация Batch аналогична ответу Кэмерона МакФарланда с добавлением перегрузки для преобразования пакета / партии перед возвратом и выполняется достаточно хорошо.

50
задан P.J 28 February 2013 в 13:11
поделиться

4 ответа

Также при использовании формата формата даты важно использовать правильный формат.

@ "YYYY" - календарный год недели.

@ "yyyy" - обычный календарный год .

Вы можете просмотреть весь блог, это хорошо, чтобы дать ему посмотреть

http://realmacsoftware.com/blog/working-with -date-time

42
ответ дан X-Factor 21 August 2018 в 08:38
поделиться
  • 1
    Спасибо за ваш ответ, вы проверили мой NSLog даты 2 и даты 3? Почему они разные? Я передаю тот же формат, и то же самое .. – P.J 28 February 2013 в 12:54
  • 2
    Разница между yyyy и YYYY, я уже знаю, полностью проверяю мой вопрос. – P.J 28 February 2013 в 12:55
  • 3
    Я надеюсь, это потому, что вы конвертируете объект даты в строку, поэтому он дает 2 разных результата. – X-Factor 28 February 2013 в 12:59
  • 4
    всякий раз, когда вы конвертируете дату в строку, она показывает вам тот же результат, который вы видите, проверите блог iosdevelopertips.com/cocoa/date-formatters-examples-take-3.html – X-Factor 28 February 2013 в 13:00
  • 5
    Я делаю string- & gt; date, а затем date- & gt; string с тем же форматированием, поэтому в идеале должен возвращать мне ту же дату, что и раньше, но это не так. Почему? – P.J 28 February 2013 в 13:00
0
ответ дан CoderPug 21 August 2018 в 08:38
поделиться

Общей ошибкой является использование YYYY. yyyy указывает календарный год, тогда как YYYY указывает год («Неделя года»), используемый в календарном году ISO год. В большинстве случаев yyyy и YYYY дают одинаковое число, однако они могут быть разными. Как правило, вы должны использовать календарный год.

из Apple Docs

17
ответ дан NSNoob 21 August 2018 в 08:38
поделиться
  • 1
    То же самое, что вы вставили из моего вопроса .. :) Я хочу ответить .. – P.J 28 February 2013 в 12:55
  • 2
    Извини, я виноват. Есть 52 недели в году. Это значение должно быть возвращено в ту неделю, в которой находится дата года. Это было бы полезно для расчета финансовых статей или повторяющихся событий календаря. – Gardner Bickford 28 February 2013 в 13:02
  • 3
    Я согласен с тем, что этот идентификатор запутан и не выбран. Существуют стандартные причины, по которым он должен существовать: ru.wikipedia.org/wiki/ISO_week_date – Gardner Bickford 28 February 2013 в 13:05
  • 4
    Повторите мой вопрос еще раз. – P.J 28 February 2013 в 13:14
  • 5
    datee является объектом NSLog. Он вернет строковое представление самого себя при конкатенировании с строкой. Это означает, что вы полагаетесь на формат NSDate по умолчанию при передаче даты на NSLog (). Если вы создаете объекты NSDate с помощью dateWithString, вы можете увидеть разницу. – Gardner Bickford 28 February 2013 в 13:39
dd/MMM/YYYY - e.g.:1 01/Jan/2000; answer : 19/dec/1999
              (see weekly calendar December month last Monday
              suppose leaf year + 1 day)
dd/MMM/yyyy - eg: ordinary - no problem.
2
ответ дан silentBeep 21 August 2018 в 08:38
поделиться
  • 1
    Можете ли вы описать свой ответ больше? – P.J 15 February 2016 в 08:04
  • 2
    см. еженедельный календарь только в декабре месяце и см. дату понедельника. – gowthaman-mallow 19 February 2016 в 07:47
Другие вопросы по тегам:

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