本帖最后由 xiekai_sjz 于 2017-10-25 18:37 编辑
Date类:
日期类, 表示特定的瞬间, 可以通过方法来设定所表示的时间, 可以表示任意的时间。注意:进行日期相关的操作时需要用到的是java.utils.Date。
Date类的构造方法:
* Date Date(): 创建Date对象, 并表示当前系统时间
* Date Date(long timestamp): 创建Date对象, 使用指定的时间 Date类的常用方法:
* void setTime(long time): 设置Date对象的时间
* long getTime(): 获取Date对象中保存的时间毫秒值.
* 注意, 无论何时调用, 都是获取Date对象中已经存储的那一瞬间的时间, 而不是调用方法时的时间 Date的使用:
案例一:使用Date类代表当前系统时间
[HTML] 纯文本查看 复制代码 Date d = new Date(); System.out.println(d);
使用Date类的默认构造方法创建出的对象就代表当前时间,由于Date类覆盖了toString方法,所以可以直接输出Date类型的对象,显示的结果如下:
Tue Oct 24 15:05:42 CST 2017
在该格式中,Tue代表TUESDAY(周二),Oct代表OCTOBER(十月),24代表24号,CST代表China Standard Time(中国标准时间,也就是北京时间(东八区))。
案例二:使用Date类获取前一天的系统时间
[Java] 纯文本查看 复制代码 Date d = new Date();
long l1 = d.getTime();//获取当前系统时间的毫秒值
long l2 = l1 - 1000*60*60*24;//用当前的毫秒值减去一天的毫秒值,得到的是前一天的毫秒值
d.setTime(l2);//设置Date对象的时间,此时Date对象表示的是前一天的时间
System.out.println(d);
显示结果如下:
Mon Oct 23 15:12:58 CST 2017
SimpleDateFormat类:
专门用于格式化和解析时间。
SimpleDateFormat类的常用方法:
*格式化: Date对象 -> 指定格式的字符串, 如2017-05-01 12:34:12
* String format(Date date): 格式化Date对象返回字符串
* 解析: 字符串 -> Date对象
* Date parse(String source): 将字符串解析为Date对象
* 该方法抛出ParseException解析异常, 因为字符串可能不匹配指定的格式 * 常用日期模式: 详细可见API文档
* y : 年
* M : 月
* m : 分
* D : 年中的天
* d : 月中的天
* H : 小时(24小时制)
* K : 小时(12小时制)
* S: 毫秒
* s : 秒
* E : 星期
示例: yyyy-MM-dd E HH:mm:ss.SSS, 结果为2017-10-24 星期二 15:29:15.868
SimpleDateFormat类的使用:
案例三:
[Java] 纯文本查看 复制代码 // 将当前日期格式化为”xxxx年xx月xx日”并打印
// 创建SimpleDateFormat对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
// 创建Date对象, 使用空参, 即为当前时间
Date now = new Date();
// 使用SimpleDateFormat对象格式化
String text = sdf.format(now);
System.out.println(text);
// 已知日期字符串”2000-10-01”, 将该日期字符串格式化为日期对象,获取该日期对象的毫秒值并打印
// 由于格式和上面年月日不同, 所以需要重新创建一个SimpleDateFormat对象, 使用新的格式
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
// 格式化字符串, 返回Date对象. 有异常, 需要抛出. 如果字符串格式和模式不匹配, 则会抛出异常
Date date = sdf2.parse("2000-10-01");
// 打印该日期对象的毫秒值
System.out.println(date.getTime());
Calendar类
日历类, 也是处理时间和日期的类, 用于替代Date类
* 创建对象
* 静态方法: static Calendar getInstance()
* 示例: Calendar c = Calendar.getInstance()
* 静态字段: 表示时间的某个部分
* Calendar.YEAR : 年份
* Calendar.MONTH : 月份. 注意月份数值是0-11
* Calendar.DAY_OF_MONTH : 日期
* Calendar.HOUR : 小时(12小时制)
* Calendar.HOUR_OF_DAY : 小时(24小时制)
* Calendar.MINITE : 分钟
* Calendar.SECOND : 秒
* 成员方法
* 获取时间的指定部分
* c.get(时间字段): 获取指定的时间部分
* 设置时间的指定部分
* c.set(时间字段, 指定数值): 使用指定数值设置指定的时间部分
* 在指定时间字段上增加/减少时间
* c.add(时间字段, 增加的时间值): 根据时间字段的单位增加指定的时间值, 如时间字段是天, 增加n天, 时间字段是秒, 增加n秒. 减少用负数
Calendar类的使用:
案例四:
[Java] 纯文本查看 复制代码 public class Test {
public static void main(String[] args) {
// 创建Calendar对象
Calendar calendar = Calendar.getInstance();
// 测试get方法
printCalendar(calendar);
// 测试add方法
calendar.add(Calendar.YEAR, 1); // 在当前时间基础上增加一年
calendar.add(Calendar.MONTH, -1); // 在当前时间基础上减少一月
printCalendar(calendar);
// 测试set方法
calendar.set(Calendar.YEAR, 2000);
calendar.set(Calendar.MONTH, 1); // 注意, 从0开始, 1就是2月
calendar.set(Calendar.DAY_OF_MONTH, 1);
printCalendar(calendar);
}
// get方法获取时间并打印
private static void printCalendar(Calendar calendar) {
int year = calendar.get(Calendar.YEAR); // 年
int month = calendar.get(Calendar.MONTH); // 月, 注意从0开始
int day = calendar.get(Calendar.DAY_OF_MONTH); // 日期
System.out.println("今天是" + year + "年" + (month + 1) + "月" + day + "日");
}
}
|