一 日期格式转换与比较大小
- 日期格式转换
String temp = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
temp : 2019-10-13
string date = "2019-10-14";
Date nowDate = temp.parse(date);
-- temp.format() // 日期转字符串
-- temp.parse() // 字符串转日期
- 日期格式比较大小
//grantDate:发放日期,recordDate:等级日期
if(agentCertif.getGrantDate()!=null&&agentCertif.getRecordDate()!=null){
if(agentCertif.getRecordDate().after(agentCertif.getGrantDate())) {
addMessage(redirectAttributes, "录入失败!发放日期应当晚于登记日期!");
return "redirect:"+ Global.getAdminPath()+"/agentdaliy/agentCertif/?repage";
}
}
2.1 日期转成数字比较大小
1)
Integer. valueOf()方法的作用:
Integer. valueOf()可以将基本类型int转换为包装类型Integer,或者将String转换成Integer,String如果为Null或“”都会报错
2)
doneDate:执行日期,outWorkDate:离职日期
if(!"".equals(outWorkDate)&&outWorkDate !=null){
SimpleDateFormat sdf = new SimpleDateFormat( "yyyyMM" );
String doneDate = sdf.format(wageRewardpunish.getDoneDate());
if(!"".equals(outWorkDate)&&outWorkDate!=null){
if(isNumeric(doneDate)&&isNumeric(outWorkDate)) {
if (Integer.valueOf(doneDate) > Integer.valueOf(outWorkDate)) {
List<String> list=new ArrayList<>();
list.add("已经离职,不能审核");
addBusinessError(model,list);
return "modules/wage/wageRewardpunishAuditList";
}
}
}
}
3)
// 检验是否为数字或者数字字符串
public boolean isNumeric(String str) {
if(!"".equals(str) && str != null) {
Pattern pattern = Pattern.compile("[0-9]*");
Matcher isNum = pattern.matcher(str);
if (!isNum.matches()) {
return false;
}
return true;
}else
return false;
}
- java日历使用
public class Demo {
public static void main(String[] args){
// 日期转字符串格式化
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
// 获取日历
Calendar c = Calendar.getInstance();
//得到前一个月
c.add(Calendar.MONTH, -1);
String start = format.format(c.getTime());
System.out.println("前一个月"+c.getTime());
System.out.println("前一个月字符串"+start);
Date date = new Date();
String nowDate = format.format(date);
System.out.println("当前月"+nowDate);
System.out.println("当前月字符串"+nowDate);
}
}
- 字符型转为Integer 或者double
String s = "123";
Integer i = Integer.valueOf(s);
Double d = Double.valueOf(s);
System.out.println(i); // 123
System.out.println(d); // 123.0
String s2 = String.valueOf(d);
System.out.println(s2); // 123.0
4.1 parseInt 和 valueOf
//parseInt 的源码:int 基本数据类型
public static int parseInt(String s) throws NumberFormatException {
return parseInt(s,10);
}
//valueOf 的源码 Integer 引用数据类型,但是又走了一遍parseInt
public static Integer valueOf(String s) throws NumberFormatException {
return Integer.valueOf(parseInt(s, 10));
}
- jdk 1.8 拥有的字符串连接类
StringJoiner,StringJoiner在构造时需要指定一个delimiter分隔符,在连接时每个元素后面都会加上delimiter
public static String formatList(List<String> list, String delimiter) {
StringJoiner result = new StringJoiner(delimiter);
for (String str : list) {
result.add(str);
}
return result.toString();
}
public static void main(String[] args) throws Exception {
List<String> list = Arrays.asList("a", "b", "c", "d", "e", "f", "g");
System.out.println("使用 StringJoiner:");
String format = formatList(list, "-");
System.out.println(format);
}
out: 使用 StringJoiner:
a-b-c-d-e-f-g
- 更加简洁方便的 string.join()
public static void main(String[] args) throws Exception {
List<String> list = Arrays.asList("a", "b", "c", "d", "e", "f", "g");
System.out.println("使用 StringJoiner:");
String format = formatList(list, " ");
System.out.println(format);
System.out.println("使用 String().join");
String format1 = String.join("-",list);
System.out.println(format1);
}
- map 的entry
public static void main(String[] args) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("1", 1);
map.put("2", 2);
map.put("3", 3);
map.put("4", 4);
map.put("5", 5);
map.put("6", 6);
map.put("7", 7);
for(Entry<String, Object> entry :map.entrySet()){
System.out.println(entry.getKey()+"::::"+entry.getValue());
}
}
- 阿里巴巴 java 开发手册关于 pojo 实体定义
数据库的查询结果可能是 null,如果使用基本类型的话,因为要自动拆箱(将包装类型转为基本类型,比如说把 Integer 对象转换成 int 值),就会抛出
NullPointerException的异常。