123
java时间工具类和常用方法
public static void main(String[] args) {
method10();
}
public static void method10() {
/**
* 加密
*/
try {
String password = "123456";
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.update(password.getBytes());
byte[] digest = md5.digest();
System.out.println(Arrays.toString(digest));
BigInteger bigInteger = new BigInteger(1, digest);
String string = bigInteger.toString(16);
System.out.println(string);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
public static void method9() {
/**
* 编码解码类
*
*/
String s = "123456";
//得到一个编码器
Base64.Encoder encoder = Base64.getEncoder();
byte[] encode = encoder.encode(s.getBytes());
System.out.println(Arrays.toString(encode));
System.out.println(new String(encode));
//得到一个解码器
Base64.Decoder decoder = Base64.getDecoder();
byte[] decode = decoder.decode(encode);
System.out.println(Arrays.toString(decode));
System.out.println();
}
public static void method8() {
/**
* 随机数类
* random/ThreadLocalRandom
*/
//生成随机数
Random random = new Random();
for (int i = 0; i < 20; i++) {
System.out.println(random.nextInt(40));
}
}
public static void method7() {
/**
* NumberFormat
* 用来格式化数字的
* NumberFormat是一个抽象类,必须使用子类DecimalFormat
* #.## 保留两位小数
* #.##% 百分比保留两位小数
* ,### 每三位以逗号分开
*/
//保留两位小数
DecimalFormat decimalFormat = new DecimalFormat("#.##");
System.out.println(decimalFormat.format(56.2121));
//百分比保留两位小数
DecimalFormat decimalFormat1 = new DecimalFormat("#.##%");
System.out.println(decimalFormat1.format(452.212212));
//每三位以逗号分开
DecimalFormat decimalFormat2 = new DecimalFormat(",###");
System.out.println(decimalFormat2.format(1221564126));
}
public static void method6() {
//既有日期也有时间
/**
* DateTimeFormatter 除了Date都可以处理
*/
LocalDateTime now = LocalDateTime.now();
System.out.println(now);
//使用ofPattern这个方法来实例
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
//转成String
String format = dateTimeFormatter.format(now);
System.out.println(format);
//使用LocalDateTime 转换为原始的形式 要告诉他格式是怎样的,否则会报错
LocalDateTime parse = LocalDateTime.parse(format, dateTimeFormatter);
System.out.println(format);
}
public static void method5() {
/**
* 日期转换类
*/
Date date = new Date();
//yyyy年 MM月 dd日 HH小时 mm分钟 ss秒
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//转化为String类型
String format = simpleDateFormat.format(date);
System.out.println(format);
try {
//把String转Date
Date parse = simpleDateFormat.parse(format);
System.out.println(parse);
} catch (ParseException e) {
e.printStackTrace();
}
}
public static void method4() {
/**
* LocalDate
* 重点处理的是和日期相关的
*/
LocalDate now = LocalDate.now();
System.out.println(now);
//得到一个指定的日期 of()
LocalDate of = LocalDate.of(2020, 12, 21);
System.out.println(of);
System.out.println("获取年:" + now.getYear());
System.out.println("本周的第几天:" + now.getDayOfWeek());
System.out.println("本月的第几天:" + now.getDayOfMonth());
System.out.println("本年的第几天:" + now.getDayOfYear());
System.out.println("是否为闰年:" + now.isLeapYear());
//两段时间相差多少天
long until = of.until(now, ChronoUnit.DAYS);
}
public static void method3() {
/**
* Instant
*/
//Zone 用UTC的时间刻度,此类是不可变的,线程安全
Instant now = Instant.now();
System.out.println(now);
//加8小时
Instant plus = now.plus(8, ChronoUnit.HOURS);
System.out.println(plus);
long until = now.until(Instant.now(), ChronoUnit.HOURS);
System.out.println("相差毫秒数:" + until);
}
public static void method2() {
/**
* Calendar
*/
//使用getInstance这个方法,拿到Calendar 的实例,他是一个静态方法
Calendar instance = Calendar.getInstance();
//1代表年,2代表月 3代表日
System.out.println(instance.get(3) + 1);
//年
System.out.println("年:" + instance.get(Calendar.YEAR));
System.out.println("月:" + instance.get(Calendar.MONTH) + 1);//0-11,所以要加上1
System.out.println("日:" + instance.get(Calendar.DATE));
System.out.println("小时:" + instance.get(Calendar.HOUR));
System.out.println("分钟:" + instance.get(Calendar.MINUTE));
//转换成Date类型的
Date time = instance.getTime();
//获取一个月中最后一天
System.out.println(instance.getActualMaximum(Calendar.DATE));
}
public static void method1() {
/**
* Date
*/
Date date = new Date();
System.out.println(date);
//距1970 1月 1日 0:0分 过了多少毫秒
Date date1 = new Date(1000000000);
System.out.println(date1);
//转换成一个long类型的值,使用getTime
long time = date.getTime();
System.out.println(time);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//format,转换成字符串格式
String format = simpleDateFormat.format(date);
System.out.println(format);
}