Java中用Calendar.get()获取时间字段需传入对应静态常量,月份从0开始(需+1),推荐使用java.time替代Calendar以避免错误。

在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
<p>Java中用Calendar的get()方法获取年、月、日、时、分、秒,关键在于传入对应的静态字段常量,注意月份从0开始(0代表1月)。</p> <H3>获取年、月、日</H3> <p>使用<font color="red">Calendar.YEAR</font>、<font color="red">Calendar.MONTH</font>、<font color="red">Calendar.DAY_OF_MONTH</font>:</p> <ul> <li><strong>年份</strong>:直接取值,范围是实际年份(如2024)</li> <li><strong>月份</strong>:返回0~11,需+1才得到1~12的自然月</li> <li><strong>日期</strong>:用DAY_OF_MONTH(不是DATE),返回1~31</li> </ul> <H3>获取时、分、秒</H3> <p>对应字段为<font color="red">Calendar.HOUR_OF_DAY</font>(24小时制)、<font color="red">Calendar.MINUTE</font>、<font color="red">Calendar.SECOND</font>:</p> <ul> <li>推荐用HOUR_OF_DAY,避免AM/PM混淆;若用HOUR则需配合Calendar.AM_PM判断</li> <li>分钟和秒都是0~59,无需额外处理</li> </ul> <H3>完整示例代码</H3> <p>一段可直接运行的参考写法:</p> <pre><code>Calendar cal = Calendar.getInstance(); int year = cal.get(Calendar.YEAR); // 如:2024 int month = cal.get(Calendar.MONTH) + 1; // 注意+1 → 1~12 int day = cal.get(Calendar.DAY_OF_MONTH); // 如:5 int hour = cal.get(Calendar.HOUR_OF_DAY); // 0~23 int minute = cal.get(Calendar.MINUTE); // 0~59 int second = cal.get(Calendar.SECOND); // 0~59 </code></pre> <H3>注意事项</H3> <p>Calendar已属遗留API,新项目建议优先用java.time包:</p> <ul> <li>LocalDateTime.now().getYear()、getMonthValue()、getDayOfMonth()等更直观</li> <li>Calendar.MONTH易出错,java.time.Month是枚举,安全性更高</li> <li>Calendar对象非线程安全,多线程中需谨慎共享</li> </ul>

















