Java 日历时间转换

Java 日历时间转换,java,android,calendar,datetime-format,Java,Android,Calendar,Datetime Format,当我试图将日期转换为毫秒时,发生了一些奇怪的事情。也许有人能解释一下我的想法: Calendar calendar = Calendar.getInstance(); calendar.set(2017, 9, 3, 4, 50); SimpleDateFormat formatter = new SimpleDateFormat("yyyy.MM.dd hh:mm:ss", Locale.getDefault()); Log.i("tag", formatter.forma

当我试图将日期转换为毫秒时,发生了一些奇怪的事情。也许有人能解释一下我的想法:

 Calendar calendar = Calendar.getInstance();
 calendar.set(2017, 9, 3, 4, 50);

 SimpleDateFormat formatter = new SimpleDateFormat("yyyy.MM.dd hh:mm:ss",
     Locale.getDefault());
 Log.i("tag", formatter.format(calendar.getTime()));
logcat会注销我的帐户:

I/tag:2017.10.03 04:50:34


为什么月份不同?

日历
月份是以零为基础的(0-11),但在显示时是“人类”版本(1-12)。

在方法
Calendar.set()
中,从文档中,参数月份从0开始

月份用于设置
month
日历字段的值。 *月份值以0为基础。e、 g.一月份为0


日历中,月份是以零为基础的。这意味着我必须从第9个月减去1。谢谢,8代表九月,9代表十月,等等。