java自定义工具方法-持续更新
1、根据身份证获取出生日期,LocalDateTime
/** * 根据身份证获取出生日期 * @param idCard * @return * @throws ParseException */ public static LocalDateTime GetBirthByIdCard(String idCard) { Date birth = null; try { if (idCard.length() == 18) { String year = idCard.substring(6).substring(0, 4);// 得到年份 String month = idCard.substring(10).substring(0, 2);// 得到月份 String day = idCard.substring(12).substring(0, 2);// 得到日 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); birth = format.parse(year + "-" + month + "-" + day); } else if (idCard.length() == 15) { String year = "19" + idCard.substring(6, 8);// 年份 String month = idCard.substring(8, 10);// 月份 String day = idCard.substring(10, 12);// 得到日 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); birth = format.parse(year + "-" + month + "-" + day); } if(birth!=null){ return LocalDateTime.ofInstant(birth.toInstant() , ZoneId.systemDefault()); } } catch (ParseException e) { } return null; }
2、输入流转为数组
/**
* 输入流转换成byte[]字节数组
* @param input
* @return
*/
public static byte[] toByteArray(InputStream input){
ByteArrayOutputStream output = null;
BufferedInputStream bis = null;
try {
bis = new BufferedInputStream(input);
output = new ByteArrayOutputStream();
int result = bis.read();
while(result != -1) {
output.write((byte) result);
result = bis.read();
}
return output.toByteArray();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
if(bis != null){
bis.close();
}
} catch (IOException e) {
e.printStackTrace();
}
try {
if(output != null){
output.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
3、生成订单编号
/* 生成订单编号 */ public static String Get16UUID(String typeStr) { String machined=""; SimpleDateFormat sdf =new SimpleDateFormat("YYMMdd"); String dayTime=sdf.format(new Date()); int hashcode= UUID.randomUUID().toString().hashCode(); if(hashcode<0) { hashcode=-hashcode; } String value=typeStr+machined+dayTime+String.format("%010d",hashcode); return value; }
4、生成19位long型唯一数字id
/** * 生成19位long型唯一数字id * @return */ public static long GetLong19UUID() { // String nanoRandom = System.nanoTime() + "" + random.nextInt(99999); SimpleDateFormat sdf =new SimpleDateFormat("YYMMdd"); String dayTime=sdf.format(new Date()); int hashcode= UUID.randomUUID().toString().hashCode(); if(hashcode<0){ hashcode=-hashcode; } int i = (int)(Math.random()*900 + 100); String value = dayTime+String.format("%010d",hashcode)+ i; long l = Long.parseLong(value); return l; }
记录一些代码和问题处理方式,需要参考的请谨慎。