【Java杂记】时间类&Math&Random&File 常用方法

473 阅读4分钟

1.时间相关类

1.1 Date(获取时间)

Date date1 = new Date();    // 调用无参数构造函数
System.out.println(date1.toString());    // 输出:Wed May 18 21:24:40 CST 2016
Date date2 = new Date(60000);    // 调用含有一个long类型参数的构造函数(6w毫秒=1小时)
System.out.println(date2);    // 输出:Thu Jan 01 08:01:00 CST 1970

Date 类中的部分核心方法:

boolean after(Date when)	// 判断此日期是否在指定日期之后
boolean before(Date when)	// 判断此日期是否在指定日期之前
int compareTo(Date anotherDate)	// 比较两个日期的顺序
boolean equals(Object obj)	// 比较两个日期的相等性
long getTime()	// 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来,此 Date 对象表示的毫秒数
String toString()	// 把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy。
				   // 其中 dow 是一周中的某一天(Sun、Mon、Tue、Wed、Thu、Fri 及 Sat)

1.2 Calendar(设置时间)

单例模式

Calendar c = Calendar.getInstance();

Calendar可以设置时间,然后拿设置的时间进行操作

Calendar calendar = Calendar.getInstance(); // 如果不设置时间,则默认为当前时间

calendar.setTime(new Date()); // 将系统当前时间赋值给 Calendar 对象

System.out.println("现在时刻:" + calendar.getTime()); // 获取当前时间(Date)
int year = calendar.get(Calendar.YEAR); // 获取当前年份
int month = calendar.get(Calendar.MONTH) + 1; // 获取当前月份(月份从 0 开始,所以加 1)
int day = calendar.get(Calendar.DATE); // 获取日
int week = calendar.get(Calendar.DAY_OF_WEEK) - 1; // 获取今天星期几(以星期日为第一天)
int hour = calendar.get(Calendar.HOUR_OF_DAY); // 获取当前小时数(24 小时制)
int minute = calendar.get(Calendar.MINUTE); // 获取当前分钟
int second = calendar.get(Calendar.SECOND); // 获取当前秒数
int millisecond = calendar.get(Calendar.MILLISECOND); // 获取毫秒数
int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH); // 获取今天是本月第几天
int dayOfWeekInMonth = calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH); // 获取今天是本月第几周
int many = calendar.get(Calendar.DAY_OF_YEAR); // 获取今天是今年第几天

Calendar c = Calendar.getInstance();
c.set(2012, 8, 8); // 设置年月日,时分秒将默认采用当前值
System.out.println("设置日期为 2012-8-8 后的时间:" + c.getTime()); // 输出时间(Date)

1.3 SimpleDateFormat(D<->S)

作用是 Date 和 String 以指定格式转换

public class Main{
    public static void main(String[] args){
        // 构造函数传入转化格式(H 24,h 12)
        SimpleDateFormat sdf = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);
        
        sdf.format(new Date); // Date -> String
        sdf.parse("2000-01-02 10:11:12") // String -> Date
    }
}

2.Math

都是静态方法

import java.lang.*;

public class TestMath {
	public static void main(String[] args) {
		System.out.println(Math.abs(-2.0)); //绝对值
		System.out.println(Math.sqrt(64.0));  //平方根,8
		System.out.println(Math.max(56,78)); //两者之间较大的
		System.out.println(Math.min(56,78)); //两者之间较小的
		System.out.println(Math.random());  //随机数
		System.out.println(Math.pow(2,10));  //幂,1024
		System.out.println(Math.ceil(18.36));  //向上取整,19.0
		System.out.println(Math.floor(18.66));  //向下取整,18.0
		System.out.println(Math.round(11.5));  //四舍五入,12
		System.out.println(Math.round(-11.5));  //四舍五入,-11
    }
}

其他方法

sin(double a) 返回角的三角正弦。
cos(double a) 返回角的三角余弦。
tan(double a) 返回角的三角正切。
log(double a) 返回 double 值的自然对数(底数是 e)。
log10(double a) 返回 double 值的底数为 10 的对数。
acos(double a) 返回一个值的反余弦;返回的角度范围在 0.0 到 pi 之间。
asin(double a) 返回一个值的反正弦;返回的角度范围在 -pi/2 到 pi/2 之间。
atan(double a) 返回一个值的反正切;返回的角度范围在 -pi/2 到 pi/2 之间。
atan2(double y, double x) 将矩形坐标 (x, y) 转换成极坐标 (r, theta),返回所得角 theta。

3.Random

import java.util.Random;
public class Test06 {
    public static void main(String[] args) {
        
        Random r = new Random(); // 需要new
        
        double d1 = r.nextDouble(); // 生成[0,1.0]区间的小数
        double d2 = r.nextDouble() * 7; // 生成[0,7.0]区间的小数
        
        int i1 = r.nextInt(10); // 生成[0,10]区间的整数
        int i2 = r.nextInt(18) - 3; // 生成[-3,15]区间的整数
        
        long l1 = r.nextLong(); // 生成一个随机长整型值
        
        boolean b1 = r.nextBoolean(); // 生成一个随机布尔型值
        
        float f1 = r.nextFloat(); // 生成一个随机浮点型值
    }
}

4.File

public class Test02 {
    public static void main(String[] args) {
        
        String path = "C:/windows/"; // 指定文件所在的目录
        File f = new File(path, "notepad.exe"); // 建立File变量,并设定由f变量引用
        
        System.out.println("C:\\windows\\notepad.exe文件信息如下:");
        System.out.println("============================================");
        
        System.out.println("文件长度:" + f.length() + "字节");
        System.out.println("文件或者目录:" + (f.isFile() ? "是文件" : "不是文件"));
        System.out.println("文件或者目录:" + (f.isDirectory() ? "是目录" : "不是目录"));
        System.out.println("是否可读:" + (f.canRead() ? "可读取" : "不可读取"));
        System.out.println("是否可写:" + (f.canWrite() ? "可写入" : "不可写入"));
        System.out.println("是否隐藏:" + (f.isHidden() ? "是隐藏文件" : "不是隐藏文件"));
        System.out.println("最后修改日期:" + new Date(f.lastModified()));
        System.out.println("文件名称:" + f.getName());
        System.out.println("文件路径:" + f.getPath());
        System.out.println("绝对路径:" + f.getAbsolutePath());
    }
}