文章目录
日期类格式化类随机数类编码解码类
日期类
Date
date转字符串,字符串转date
public class DateUtil {
private DateUtil(){}
private static final String PATTERN
= "yyyy-MM-dd HH:mm:ss";
private static final ThreadLocal
<SimpleDateFormat> THREAD_LOCAL
= new ThreadLocal(){
@Override
protected SimpleDateFormat
initialValue() {
return new SimpleDateFormat(PATTERN
);
}
};
public static String
dateConvertToStr(Date date
){
Objects
.requireNonNull(date
);
return THREAD_LOCAL
.get().format(date
);
}
public static Date
strConvertToDate(String dateStr
){
Objects
.requireNonNull(dateStr
);
try {
return THREAD_LOCAL
.get().parse(dateStr
);
} catch (ParseException e
) {
e
.printStackTrace();
}
return null
;
}
}
Calendar
public class CalendarDemo {
public static void main(String
[] args
) {
Calendar calendar
= Calendar
.getInstance();
System
.out
.println(calendar
);
Calendar calendar1
= new GregorianCalendar();
System
.out
.println(calendar1
);
System
.out
.println(calendar
.get(Calendar
.YEAR
));
System
.out
.println(calendar
.get(Calendar
.MONTH
)+1);
System
.out
.println(calendar
.get(Calendar
.DAY_OF_MONTH
));
calendar
.set(Calendar
.YEAR
,2019);
System
.out
.println(calendar
.get(Calendar
.YEAR
));
calendar
.add(Calendar
.YEAR
,1);
System
.out
.println(calendar
.get(Calendar
.YEAR
));
calendar
.set(2020,1,10);
Date time
= calendar
.getTime();
System
.out
.println(calendar
.getActualMaximum(Calendar
.DATE
));
System
.out
.println(calendar
.getMaximum(Calendar
.DATE
));
}
}
Instant(java.time包下:值不可变,线程安全)
public class InstantDemo {
public static void main(String
[] args
) {
Instant instant
= Instant
.now();
System
.out
.println(instant
);
instant
= instant
.plus(Duration
.ofHours(8));
Instant instant1
= Instant
.now().plus(Duration
.ofHours(8));
System
.out
.println(instant1
);
System
.out
.println(Math
.abs(instant
.until(instant1
, ChronoUnit
.HOURS
)));
}
}
LocalDateTime(java.time包下:值不可变,线程安全)
和字符串的互相转换
private static final String PATTERN
= "yyyy-MM-dd HH:mm:ss";
private static final DateTimeFormatter DATE_TIME_FORMATTER
= DateTimeFormatter
.ofPattern(PATTERN
);
public static LocalDateTime
strToLocalDateTime(String dateStr
){
return LocalDateTime
.parse(dateStr
,DATE_TIME_FORMATTER
);
}
public static String
localDateTimeToStr(LocalDateTime localDateTime
){
return DATE_TIME_FORMATTER
.format(localDateTime
);
}
public class LocalDateTimeDemo {
public static void main(String
[] args
) {
LocalDateTime localDateTime
= LocalDateTime
.now();
localDateTime
= localDateTime
.plus(Duration
.ofHours(2));
localDateTime
= localDateTime
.plusYears(1);
localDateTime
= localDateTime
.minus(1,ChronoUnit
.YEARS
);
System
.out
.println(localDateTime
.get(ChronoField
.YEAR
));
System
.out
.println(localDateTime
);
System
.out
.println(localDateTime
.getMonth());
System
.out
.println(Month
.MARCH
);
System
.out
.println(localDateTime
.getDayOfWeek());
System
.out
.println(DateUtil
.strToLocalDateTime("2020-01-01 12:00:00"));
System
.out
.println(DateUtil
.localDateTimeToStr(LocalDateTime
.now()));
System
.out
.println(Instant
.parse("2020-01-01 12:00:00"));
String PATTERN
= "yyyy-MM-dd HH:mm:ss";
System
.out
.println(ZoneId
.systemDefault());
DateTimeFormatter formatter
= DateTimeFormatter
.ofPattern(PATTERN
).withZone(ZoneId
.systemDefault());
TemporalAccessor parse
= formatter
.parse("2020-01-01 12:00:00");
Instant instant
=(Instant
) parse
;
System
.out
.println(instant
);
System
.out
.println(parse
.toString());
Instant now
= Instant
.now();
String format
= formatter
.format(now
);
System
.out
.println(format
);
}
}
格式化类
Dateformat
SimpleDateFormat 只针对于Date类型的数据进行格式化操作。
public abstract class DateFormat
extends Format
public class SimpleDateFormat
extends DateFormat
常用构造
:
SimpleDateFormat(String pattern
) 创建指定模式的格式化日期对象
常用方法
:
String
format(Date date
) 将Date转换成String
Date
parse(String source
) String解析成Date
DateTimeFormatter
针对于LocalDateTime类型的数据进行格式化操作。
DateTimeFormatter dateTimeFormatter
= DateTimeFormatter
.ofPattern(PATTERN
);
NumberFormat
public class NumberFormatDemo {
public static void main(String
[] args
) {
demo3();
}
private static void demo3() {
NumberFormat numberFormat
= new DecimalFormat("###,###.####");
BigDecimal bigDecimal
= new BigDecimal("782355344326.276354371");
String format
= numberFormat
.format(bigDecimal
.doubleValue());
System
.out
.println(format
);
}
private static void demo2() {
NumberFormat numberFormat
= new DecimalFormat("#####.##%");
String format
= numberFormat
.format(1.561264);
System
.out
.println(format
);
}
private static void demo1() {
NumberFormat numberFormat
= new DecimalFormat("###.##");
String format
= numberFormat
.format(20.561234);
System
.out
.println(format
);
}
}
随机数类
Random线程不安全ThreadLocalRandom线程安全
private static void demo1() {
ThreadLocalRandom random
= ThreadLocalRandom
.current();
random
.nextInt(begin
,bound
);
for (int i
= 0; i
< 3; i
++) {
Random random
= new Random();
for (int i1
= 0; i1
< 5; i1
++) {
int randomNum
= random
.nextInt(101);
System
.out
.print(randomNum
+",");
}
System
.out
.println();
}
System
.out
.println("------------------------");
for (int i
= 0; i
< 3; i
++) {
Random random
= new Random(1);
for (int i1
= 0; i1
< 5; i1
++) {
int randomNum
= random
.nextInt(101);
System
.out
.print(randomNum
+",");
}
System
.out
.println();
}
}
编码解码类
Base64(可逆)
编码:(加密) Encoder;解码(解密): Decoder
public class Base64Demo {
public static void main(String
[] args
) {
System
.out
.println(encoderPass("abc42rffsav"));
System
.out
.println(login("abc42rffsav1"));
}
private static boolean login(String loginPass
) {
String encoderPass
= "YWJjNDJyZmZzYXY=";
Base64
.Decoder decoder
= Base64
.getDecoder();
byte[] decode
= decoder
.decode(encoderPass
);
if(!loginPass
.equals(new String(decode
))){
return false;
}
return true;
}
private static String
encoderPass(String sourcePass
) {
Objects
.requireNonNull(sourcePass
);
Base64
.Encoder encoder
= Base64
.getEncoder();
return encoder
.encodeToString(sourcePass
.getBytes());
}
}
MessageDigest(信息摘要算法,不可逆)
public class MD5Util {
private MD5Util(){}
public static String
md5(String source
){
Objects
.requireNonNull(source
);
String salt
= "lisa#&%*_";
source
=source
+salt
;
try {
MessageDigest messageDigest
= MessageDigest
.getInstance("MD5");
messageDigest
.update(source
.getBytes());
byte[] digest
= messageDigest
.digest();
BigInteger bigInteger
= new BigInteger(1,digest
);
return bigInteger
.toString(16).toUpperCase();
} catch (NoSuchAlgorithmException e
) {
e
.printStackTrace();
}
return null
;
}
public static void main(String
[] args
) {
System
.out
.println(md5("1234"));
}
}