十三天工作知识总结-jdk8日期处理

1,获取订单的总金额

代码如下:

 /**
     * 自定义 SQL
     */
    public String getTotalPayPrice(Map<String, Object> param) {
        List<String> orderIds = (List<String>) param.get("orderIds");
        String join = Joiner.on(", ").join(orderIds.stream().map(o -> "'" + o + "'").collect(Collectors.toList()));
        return String.format("select sum(pay_price) from ecomm_orders_goods where order_id in (%s)", join);
    }
   

2, BigDecimal中divide方法注意问题

(1) 除以整数不保留小数
BigDecimal rate = new BigDecimal(1).divide(new BigDecimal(3));

(2)保留小数2位
BigDecimal rate = new BigDecimal(1).
divide(new BigDecimal(3), 6, BigDecimal.ROUND_HALF_UP);

3,jdk8来处理时间日期

JDK处理时间日期
重点:示例 在Java 8中处理不同的时区
Java 8不仅将日期和时间进行了分离,同时还有时区。现在已经有好几组与时区相关的类了,比如ZonId代表的是某个特定的时区,而ZonedDateTime代表的是带时区的时间。它等同于Java 8以前的GregorianCalendar类。使用这个类,你可以将本地时间转换成另一个时区中的对应时间,比如下面这个例子:

// Date and time with timezone in Java 8 ZoneId america = ZoneId.of("America/New_York"); 
LocalDateTime localtDateAndTime = LocalDateTime.now(); 
ZonedDateTime dateAndTimeInNewYork = ZonedDateTime.of(localtDateAndTime, america ); 
System.out.println("Current date and time in a particular timezone : " + dateAndTimeInNewYork); 
 
Output : 
Current date and time in a particular timezone : 2014-01-14T16:33:33.373-05:00[America/New_York]

示例2 带时区偏移量的日期与时间
在Java 8里面,你可以用ZoneOffset类来代表某个时区,比如印度是GMT或者UTC5:30,你可以使用它的静态方法ZoneOffset.of()方法来获取对应的时区。只要获取到了这个偏移量,你就可以拿LocalDateTime和这个偏移量创建出一个OffsetDateTime。

LocalDateTime datetime = LocalDateTime.of(2014, Month.JANUARY, 14, 19, 30); 
ZoneOffset offset = ZoneOffset.of("+05:30"); 
OffsetDateTime date = OffsetDateTime.of(datetime, offset); 
System.out.println("Date and Time with timezone offset in Java : " + date); 
 
Output : 
Date and Time with timezone offset in Java : 2014-01-14T19:30+05:30

4,订单信息变更状路径记录表

CREATE TABLE change_orders (
uid varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
order_id varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
old_status int(2) NOT NULL COMMENT ‘原状态’,
new_status int(2) NOT NULL COMMENT ‘新状态’,
change_time varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT ‘订单变更时间’,
created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (uid),
KEY order_id (order_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT=‘订单路径变更逻辑记录’;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tronhon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值