• 愉快且方便的处理时间-- LocalDate


    java中做时间处理时一般会采用java.util.Date,但是相比于Date来说,还有更好的选择 -- java.time.LocalDate

    这是jdk8中新增的日期处理类,同时新增的还有java.time.LocalTime、java.time.LocalDateTime。大多吐槽Date的是其对于月份的处理是从0开始的,取得正确月份还得往后偏移一位。Date内容很丰富,不但包含年月日,还包含时间。

    相比Date来说,LoalDate更安全、更精确也更明确。LocalDate不包含时间,只是单纯的年月日,要精确到时分秒甚至毫秒的就需要用java.time.LocalDateTime

    【LocalDate】

    一般用法如下:

    // 取当前日期:
    LocalDate today = LocalDate.now(); // -> 2014-12-24
    // 根据年月日取日期:
    LocalDate crischristmas = LocalDate.of(2014, 12, 25); // -> 2014-12-25
    // 根据字符串取:
    LocalDate endOfFeb = LocalDate.parse("2014-02-28"); // 严格按照ISO yyyy-MM-dd验证,02写成2都不行,当然也有一个重载方法允许自己定义格式
    LocalDate.parse("2014-02-29"); // 无效日期无法通过:DateTimeParseException: Invalid date

    一般日期转换:

    // 取本月第1天:
    LocalDate firstDayOfThisMonth = today.with(TemporalAdjusters.firstDayOfMonth()); // 2017-03-01
    // 取本月第2天:
    LocalDate secondDayOfThisMonth = today.withDayOfMonth(2); // 2017-03-02
    // 取本月最后一天,再也不用计算是28,29,30还是31:
    LocalDate lastDayOfThisMonth = today.with(TemporalAdjusters.lastDayOfMonth()); // 2017-12-31
    // 取下一天:
    LocalDate firstDayOf2015 = lastDayOfThisMonth.plusDays(1); // 变成了2018-01-01
    // 取2017年1月第一个周一,用Calendar要死掉很多脑细胞:
    LocalDate firstMondayOf2015 = LocalDate.parse("2017-01-01").with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY)); // 2017-01-02

    【LocalTime】

    LocalTime只包含时间,获得当前时间:

    LocalTime now = LocalTime.now(); // 23:11:08.006

    构造时间:

    LocalTime zero = LocalTime.of(0, 0, 0); // 00:00:00
    LocalTime mid = LocalTime.parse("12:00:00"); // 12:00:00

    JDBC

    最新JDBC映射将把数据库的日期类型和Java 8的新类型关联起来:

    SQL -> Java
    --------------------------
    date -> LocalDate
    time -> LocalTime
    timestamp -> LocalDateTime

    参考:http://www.liaoxuefeng.com/article/00141939241051502ada88137694b62bfe844cd79e12c32000

  • 相关阅读:
    Lerning Entity Framework 6 ------ Defining Relationships
    Lerning Entity Framework 6 ------ Defining the Database Structure
    Lerning Entity Framework 6 ------ Introduction to TPH
    Lerning Entity Framework 6 ------ Introduction to TPT
    Lerning Entity Framework 6 ------ Using a commandInterceptor
    Lerning Entity Framework 6 ------ A demo of using Entity framework with MySql
    C#是否该支持“try/catch/else”语法
    Hadoop学习之旅三:MapReduce
    CLR via C# 摘要二:IL速记
    Java 制表符 " "
  • 原文地址:https://www.cnblogs.com/jtools/p/6502999.html
Copyright © 2020-2023  润新知