【发布时间】:2023-03-18 16:28:01
【问题描述】:
在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);
}
}
Swift 3 的Calendar 类中的enumerateDates 方法太混乱了。我不知道是用那个还是别的。我想要的只是包括本月在内的过去 12 个月。例如,这个月是 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 年 12 月时,它显示了 12 月 16 日)。
【问题讨论】:
-
您希望输出为字符串还是日期对象?
-
字符串,我将使用我目前输入的格式编辑帖子
标签: ios swift swift3 nsdate nscalendar