【发布时间】:2016-09-17 22:23:11
【问题描述】:
我正在尝试关注这个post,但我不确定如何以 iso8601 格式存储我的数据,因为我没有从时间选择器界面获得任何“秒”输入,我可以将“0000”附加到字符串生成器结束?
该帖子还使用了仅支持 API 24 的 SimpleDateFormat()。我的最低 API 级别是 19。是否有对应的功能?
Java 代码:
public void saveExam() {
date = (DatePicker)findViewById(R.id.examDate);
Integer day = date.getDayOfMonth();
Integer month = date.getMonth();
Integer year = date.getYear();
time = (TimePicker)findViewById(R.id.examTime);
Integer hour, minutes;
if (Build.VERSION.SDK_INT >= 23 ) {
hour = time.getHour();
minutes = time.getMinute();
} else {
hour = time.getCurrentHour();
minutes = time.getCurrentMinute();
}
StringBuilder temp = new StringBuilder();
temp.append(year.toString()).append("-").append(month.toString()).append("-").append(day.toString())
.append(" ").append(hour).append(":").append(minutes);
Toast.makeText(add_exam.this, temp, Toast.LENGTH_LONG).show();
}
谁能给我解释一下这部分代码,这是我第一次看到flags:
if (date != null) {
long when = date.getTime();
int flags = 0;
flags |= android.text.format.DateUtils.FORMAT_SHOW_TIME;
flags |= android.text.format.DateUtils.FORMAT_SHOW_DATE;
flags |= android.text.format.DateUtils.FORMAT_ABBREV_MONTH;
flags |= android.text.format.DateUtils.FORMAT_SHOW_YEAR;
finalDateTime = android.text.format.DateUtils.formatDateTime(context,
when + TimeZone.getDefault().getOffset(when), flags);
【问题讨论】:
-
SimpleDateFormat是一个早于 Android 的基本 Java 类:docs.oracle.com/javase/6/docs/api/java/text/… 您可以在任何版本上使用它。对于标志,请查找有关位掩码的教程/资源以了解其工作原理。