В Android
я могу генерировать метки для моей линейной диаграммы за последние 12 месяцев, включая этот месяц.Swift 3 - Android, эквивалентный получению последних 12 месяцев с использованием класса календаря
В моем TimeDateHelper
классе:
public static DateFormat getMonthYearChartLabelFormat() {
DateFormat monthYearChartLabelFormat = new SimpleDateFormat("MMM ''yy", Locale.US);
monthYearChartLabelFormat.setTimeZone(TimeZone.getDefault());
return monthYearChartLabelFormat;
}
В моем другом классе LineChartActivity
:
private void setUpMonthLabels() {
this.labels = new ArrayList<>();
Calendar cal = Calendar.getInstance();
cal.setTimeZone(TimeZone.getDefault());
cal.add(Calendar.MONTH, -11);
for (int i = 0; i < 12; i++) {
this.labels.add(TimeDateHelper.getMonthYearChartLabelFormat().format(cal.getTime()));
cal.add(Calendar.MONTH, 1);
}
}
enumerateDates
метод в Swift 3
«s Calendar
класса является слишком запутанной. Я не знаю, использовать ли это или что-то еще. Все, что я хочу, это последние 12 месяцев, включая этот месяц. Например, в этом месяце декабря, так что результат будет:
Jan '16
Feb '16
Mar '16
Apr '16
May '16
Jun '16
Jul '16
Aug '16
Sep '16
Oct '16
Nov '16
Dec '16
Как я могу получить это сделано с Swift 3?
**** ПРОГРЕСС ****
До сих пор я некоторое форматирование установить:.
let dateFormatter: DateFormatter = {
let formatter = DateFormatter()
formatter.timeZone = TimeZone.current
return formatter
}()
func getMonthYearChartLabelString(fromDate date: Date) -> String {
dateFormatter.dateFormat = DateFormatter.dateFormat(fromTemplate: "MMM ''yy", options: 0, locale: Locale(identifier: "en-US"))
return dateFormatter.string(from: date)
}
Апостроф не работает по какой-то причине Тхо (например, он показывает Дек 16, когда он должен показать Dec '16).
Вы хотите, выходные данные в виде строки или даты объектов? – Alexander
Строки, я отредактирую сообщение с форматированием, которое я установил до сих пор – Rafi