Dateformatter возвращает nil date

Вы получаете его прямо из патчей осей:

In [35]: for p in ax.patches:
    ax.annotate(str(p.get_height()), (p.get_x() * 1.005, p.get_height() * 1.005))

Вы хотите настроить форматирование строк и смещения, чтобы получить объекты по центру, возможно, используйте ширину от p.get_width(), но это должно заставить вас начать. Может не работать со штабелями, если вы не отслеживаете смещения где-нибудь.

0
задан Euridice01 13 July 2018 в 13:43
поделиться

2 ответа

Причина, по которой вы не получаете минут и секунд в своей дате после добавления 3 часов, - вы не включили эти компоненты в массив компонентов, см. ниже код:

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
dateFormatter.locale = Locale(identifier: "en_US_POSIX")

let date = dateFormatter.date(from:(publication.DateTime)!) 
let calendar = Calendar.current
// Here .minute and .second is added in below line which is missing in your code
let components = calendar.dateComponents([.year, .month, .day, .hour, .minute, .second], from: date!)

let finalDate = calendar.date(from:components)
let newDate = calendar.date(
                byAdding: .hour,
                value: 3,
                to: finalDate!)
1
ответ дан Dhaval D. 17 August 2018 в 12:47
поделиться

Вам просто нужно изменить yyyy-MM-dd'T'HH:mm:ssZ на "yyyy-MM-dd'T'HH:mm:ss", и он будет работать.

1
ответ дан Dharmesh Kheni 17 August 2018 в 12:47
поделиться
  • 1
    Одна из проблем заключается в том, что она добавляет 3 часа к дате, но удаляет минуты и секунды. Как сохранить исходные минуты и секунды, привязанные к дате? – Euridice01 13 July 2018 в 13:25
Другие вопросы по тегам:

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