常用API
时间:Date与Calendar
Date类常用的方法
java.util.Date 类 表示特定的瞬间,精确到毫秒
public Date() :分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
public Date(long date) :分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元 (epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。
过时但常用的方法
public long getTime() 把日期对象转换成对应的时间毫秒值。
代码案例
public class DateDemo {
public static void main(String[] args) {
Date d = new Date();
System.out.println(d);//Tue Jul 16 17:22:11 CST 2019
Date d2 = new Date(1000L);
System.out.println(d2);//Thu Jan 01 08:00:01 CST 1970
System.out.println(d2.getTime());//把日期对象转回毫秒值
}
}
DateFormat类
常用方法
public String format(Date date) :将Date对象格式化为字符串。
public Date parse(String source) :将字符串解析为Date对象。
代码案例
public static void main(String[] args) {
Date d = new Date();
System.out.println(d);//Tue Jul 16 17:22:23 CST 2019
DateFormat df = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");//定义输出格式
String date = df.format(d);//调用format方法
System.out.println(date);//2019年07月16日 17:22:23
}
Calendar类
Calendar为抽象类,不能直接创建对象,而是通过静态方法创建,返回子类对象,如下:
Calendar cal = Calendar.getInstance();
常用方法
- public int get(int field) :返回给定日历字段的值。
- public void set(int field, int value) :将给定的日历字段设置为给定值。
- public abstract void add(int field, int amount) :根据日历的规则,为给定的日历字段添加或减去 指定的时间量。
- public Date getTime() :返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。
字段值 | 含义 |
---|---|
YEAR | 年 |
MONTH | 月(从0开始,可以+1使用) |
DAY_OF_MONTH | 月中的天(几号) |
HOUR | 时(12小时制) |
HOUR_OF_DAY | 时(24小时制) |
MINUTE | 分 |
SECOND | 秒 |
DAY_OF_WEEK | 周中的天(周几,周日为1,可以-1使用) |
代码实例
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);//获取年
int month = cal.get(Calendar.MONTH)+1;//获取月需要+1处理
int day = cal.get(Calendar.DAY_OF_MONTH);//获取日
System.out.println(year+"年"+month+"月"+day+"日");
cal.set(Calendar.YEAR,2020);//将年份改成2020年
cal.add(Calendar.YEAR,-20);//将年份改为2000年
System.out.println(cal.getTime());//返回偏移量的date对象
System.out.println(cal.get(Calendar.YEAR)+"年"+(cal.get(Calendar.MONTH)+1)+"月"+cal.get(Calendar.DAY_OF_MONTH)+"日");
}
System类
java.lang.System 类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作
常用方法
- public static long currentTimeMillis() :返回以毫秒为单位的当前时间。
- public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) :将数组中指定的数据拷贝到另一个数组中。
CurrentTimeMillis()
代码案例
public static void main(String[] args) {
long start = System.currentTimeMillis();//开始
for (int i = 0; i < 100; i++) {
System.out.println(i);
}
long end = System.currentTimeMillis();//结束
System.out.println("共耗时"+(end - start)+"毫秒");//计算总耗时
}
arraycopy()
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) :将数组中指定的数据拷贝到另一个数组中。
代码案例
int[] arr1 = {1, 2, 3, 4, 5, 6, 7, 8};
int[] arr2 = {0, 0, 0, 0, 0, 0, 0, 0};
System.arraycopy(arr1, 0, arr2, 0, 8);
for (int i = 0; i < arr1.length; i++) {
System.out.println(arr1[i]);
}
}
BigDecimal()
进行精确计算时使用BigDecimal
public BigDecimal(String val) 将String表示形式转换成BigDecimal
代码实现
public static void main(String[] args) {
BigDecimal a = new BigDecimal("1.5");
BigDecimal b = new BigDecimal("2.5");
BigDecimal add = a.add(b);
System.out.println(add);//加
BigDecimal multiply = a.multiply(b);
System.out.println(multiply); //乘
BigDecimal subtract = a.subtract(b);
System.out.println(subtract); //减
BigDecimal divide = a.divide(b);
System.out.println(divide);//除
}