点滴-Java8的日期类
来源:互联网 发布:长寿 知乎 编辑:程序博客网 时间:2024/06/04 18:34
Java8的日期类不熟悉啊,几个小姿势记录一下。
1.LocalDate.now()不是享元
yqj2065要大量创建LocalDate对象,所以要自定义一个MyDate, public static final LocalDate today = LocalDate.now();
LocalDate d1 =LocalDate.now();
LocalDate d2 =LocalDate.now();
System.out.println(d1==d2); // false,操蛋
2.BASIC_ISO_DATE
today.format(DateTimeFormatter.ISO_DATE)为字符串 "2015-11-21",要得到"20151121",可以
String dateStr = date.format(DateTimeFormatter.ISO_DATE);//BASIC_ISO_DATE String[] d = dateStr.split("-"); String yyyymmdd = ""; for (String s : d) { yyyymmdd += s; } return yyyymmdd;但是有现成的,today.format(DateTimeFormatter.BASIC_ISO_DATE)!
3.Period
Period中,天数只管天数。
LocalDate from = MyDate.today; LocalDate to = from.plusDays(50);//LocalDate.of(2016, 1, 10); Period period = from.until(to); System.out.println(from + " " + to + " " + period.getDays());有大量文件如log20151121,yqj2065要循环找到[from,to]的文件,用下面的代码:
LocalDate from = MyDate.today; LocalDate to = LocalDate.of(2015, 11, 25); List<String> fileNames = new ArrayList<>(); while(from.isBefore(to.plusDays(1))){//to] String fileName = "log" +from.format(DateTimeFormatter.BASIC_ISO_DATE);; fileNames.add(fileName); from = from.plusDays(1); } fileNames.stream().forEach((s) -> { System.out.println(s); });log20151121
log20151122
log20151123
log20151124
log20151125
不知道有没有其他的方式。
4.java.sql.Date
拼接sql:
String sql = "select * from xxx where " + " pin= " + boxResult.getPin() + " AND sn= " + boxResult.getSn() + " AND date= '" + boxResult.getDate() + "'";
PreparedStatement:
String condition = "insert into xxx(orderID,customerID,pin,sn,date,outDate) values(?,?,?,?,?,?)"; PreparedStatement ps = MySQLConn.conn.prepareStatement(condition); ps.setString(1, order.getOrderID()); ps.setInt(2, order.getCustomer().getCustomerID()); ps.setInt(3, qrCode.getPin()); ps.setInt(4, qrCode.getSN()); ps.setDate(5, java.sql.Date.valueOf(qrCode.getDate())); ps.setDate(6, java.sql.Date.valueOf(order.getOutDate()));这个setDate(int parameterIndex, java.sql.Date x) 有点讨嫌。为什么不提供重载的setDate(int parameterIndex, LocalDate date) ?
5.java.util.Date
老代码会遇到java.util.Date,例如使用org.jdesktop.swingx.JXDatePicker时。java.util.Date的等价物为Instant,
Date date= new Date();LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
1 0
- 点滴-Java8的日期类
- Java8的日期、时间类
- Java8 的日期排序
- 使用java8新版的日期类操作日期相关
- Java8 日期时间处理类
- java8日期
- java8的时间 和 java8以下的日期互转
- java8实战十一:java8----新的日期时间API
- Java8求本月每周末的日期
- java8 新的日期和时间api
- Java8:新的日期和时间API
- Java8新的时间和日期
- Java8新增的日期,时间包
- java8-03-全新的日期时间API
- Java8里面的日期操作整理
- java8的日期API总结(JSR310)
- JAVA8日期时间的差值计算方法
- Java8 新日期时间类(2)
- java web 弹幕技术实现
- Linxu笔记(5): rpm安装包安装与卸载
- poj 1811
- UML——对象图与类图
- 编译openwrt支持USB自动mount功能
- 点滴-Java8的日期类
- 孤独生信狗的生存指南
- Java串口通信的通用模式及其问题
- BestCoder Round #63 (div.2) sequence1
- Linxu笔记(6): yum在线安装与光盘环境搭建
- Linux socket对EINTR处理
- hihocoder #1093
- code[vs]最小生成树 1078,1231
- AVL Tree