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

    科技2026-04-22  21

    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()); } }
    Processed: 0.017, SQL: 9