Calendar中的一些用法
来源:互联网 发布:普通话水平考试软件 编辑:程序博客网 时间:2024/05/22 18:22
网上找的,刚刚接触Calendar类,有点复杂,记下来。
Java中对日期的处理需要用到Calendar类,其中有几个方法在使用时需要新手注意。
1. 在获取月份时,Calendar.MONTH + 1 的原因
Java中的月份遵循了罗马历中的规则:当时一年中的月份数量是不固定的,第一个月是JANUARY。而Java中Calendar.MONTH返回的数值其实是当前月距离第一个月有多少个月份的数值,JANUARY在Java中返回“0”,所以我们需要+1。
2. 在获取星期几 Calendar.DAY_OF_WEEK – 1 的原因
Java中Calendar.DAY_OF_WEEK其实表示:一周中的第几天,所以他会受到
有些地区以星期日作为一周的第一天,而有些地区以星期一作为一周的第一天,这2种情况是需要区分的。
看下表的返回值
所以Calendar.DAY_OF_WEEK需要根据本地化设置的不同而确定是否需要 “-1”
Java中设置不同地区的输出可以使用 Locale.setDefault(Locale.地区名) 来实现。
3. 获取日期时 Calendar.DAY_OF_MONTH 不需要特殊的操作,他直接返回一个月中的第几天
有关其他一些方法,附上测试代码:
package com.cn.pc.test;import java.util.Date;import java.text.SimpleDateFormat;import java.text.DateFormat;import java.text.ParseException;import java.util.Calendar;/** * Created by Administrator on 2017/8/31. */public class CalendarTest { public static void main(String[] args) { // 字符串转换日期格式 DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 完整显示今天日期时间 String str = sdf.format(new Date()); System.out.println(str); // 创建 Calendar 对象 Calendar calendar = Calendar.getInstance(); try { // 对 calendar 设置时间的方法 // 设置传入的时间格式// SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 指定一个日期 Date date = sdf.parse("2017-08-31 15:24:16"); // 对 calendar 设置为 date 所定的日期 calendar.setTime(date); // 按特定格式显示刚设置的时间 str = sdf.format(calendar.getTime()); System.out.println(str); } catch (ParseException e) { e.printStackTrace(); } // 或者另一種設置 calendar 方式 // 分別爲 year, month, date, hourOfDay, minute, second// calendar = Calendar.getInstance();// calendar.set(2017, 8, 31, 17, 35, 44); str = sdf.format(calendar.getTime()); System.out.println(str); // Calendar 取得当前时间的方法 // 初始化 (重置) Calendar 对象 calendar = Calendar.getInstance(); // 或者用 Date 来初始化 Calendar 对象 calendar.setTime(new Date()); System.out.println("new Date():" + calendar.getTime()); // setTime 类似上面一行 // Date date = new Date(); // calendar.setTime(date); str = sdf.format(calendar.getTime()); System.out.println(str); // 显示年份 int year = calendar.get(Calendar.YEAR); System.out.println("year is = " + String.valueOf(year)); // 显示距离第一个月的月份 (从0开始, 实际显示要加一) int month = calendar.get(Calendar.MONTH); System.out.println("nth is = " + (month + 1)); // 本周几,根据Locale.setDefault(Locale.地区名)来确定 int week = calendar.get(Calendar.DAY_OF_WEEK); System.out.println("week is = " + week); // 今年的第 N 天 int DAY_OF_YEAR = calendar.get(Calendar.DAY_OF_YEAR); System.out.println("DAY_OF_YEAR is = " + DAY_OF_YEAR); // 本月第 N 天 int DAY_OF_MONTH = calendar.get(Calendar.DAY_OF_MONTH); System.out.println("DAY_OF_MONTH = " + String.valueOf(DAY_OF_MONTH)); // 3小时以后 calendar.add(Calendar.HOUR_OF_DAY, 3); int HOUR_OF_DAY = calendar.get(Calendar.HOUR_OF_DAY); System.out.println("HOUR_OF_DAY + 3 = " + HOUR_OF_DAY); // 当前分钟数 int MINUTE = calendar.get(Calendar.MINUTE); System.out.println("MINUTE = " + MINUTE); // 15 分钟以后 calendar.add(Calendar.MINUTE, 15); MINUTE = calendar.get(Calendar.MINUTE); System.out.println("MINUTE + 15 = " + MINUTE); // 30分钟前 calendar.add(Calendar.MINUTE, -30); MINUTE = calendar.get(Calendar.MINUTE); System.out.println("MINUTE - 30 = " + MINUTE); // 格式化显示 str = sdf.format(calendar.getTime()); System.out.println(str); // 重置 Calendar 显示当前时间 calendar.setTime(new Date()); str = sdf.format(calendar.getTime()); System.out.println(str); // 创建一个 Calendar 用于比较时间 Calendar calendarNew = Calendar.getInstance(); // 设定为 5 小时以前,后者大,显示 -1 calendarNew.add(Calendar.HOUR, -5); System.out.println("时间比较:" + calendarNew.compareTo(calendar)); // 设定7小时以后,前者大,显示 1 calendarNew.add(Calendar.HOUR, +7); System.out.println("时间比较:" + calendarNew.compareTo(calendar)); // 退回 2 小时,时间相同,显示 0 calendarNew.add(Calendar.HOUR, -2); System.out.println("时间比较:" + calendarNew.compareTo(calendar)); }}
阅读全文
0 0
- Calendar中的一些用法
- Calendar的一些用法
- Calendar中的一些方法
- Calendar中的一些方法
- Calendar中的一些方法
- java Calendar 的一些用法
- JAVA 中Calendar类一些常用法
- java之Calendar的一些用法
- 关于Calendar用法的一些总结
- 关于Calendar用法的一些总结
- Calendar中的一些方法 设置闹钟相关
- Calendar用法
- calendar用法
- Calendar用法
- Calendar用法
- Calendar用法
- Java中Calendar和Date的一些使用用法技巧
- [小程序]时间类Calendar方法的一些普通用法
- 解决空指针的正确姿势
- java jdk环境配置和cmd编译运行java程序
- python post
- intellij idea SVN服务器变更
- web.xml中load-on-startup的作用
- Calendar中的一些用法
- input取值转化为数值型及js浮点计算误差解决
- NGUI图集杂说
- .netcore2.0+pgsql 脚手架
- Just a Hook HDU
- MultiDex的配置
- mysql集群中间件proxysql
- CentOS7安装pip
- 预编译宏