• Java中,尽量相信自己,使用自己写的方法,不要使用底层提供的方法。都是坑。


    Date转LocalDate时,调用toInstant()报UnsupportedOperationException异常。

    https://www.jianshu.com/p/11d8ed48f7a9

    MediaType.TEXT_PLAIN 使用的不是 utf-8

    Charset.defaultCharset()

    你相信系统,想利用系统字符集, 但系统字符集并不统一。我们在给自己找事。 我们花精力理解去理解它更没有意义。

    无用的学习成本。

    比如 logback-spring.xml 里可以使用的变量,学习这些变量, 对编程本身没有意义。当换一个组件, 或大版本升级, 这些知识就都废了。

    时间及时区

    所有时间的字符串表示, 都定义为: 北京时间, 如: 2018-10-17 09:00:00 , 就是北京的上班时间。

    如: 客户端提交的时间, 数据库保存的时间。不管是 Date , LocalDateTime , 都表示北京时间。

    之所以混乱是因为多套标准,并且标准混乱。:

    1. 系统定义的标准: 以UTC时间为准, 世界任何一个地方, 同一时间获取的时间, 毫秒数相同, 但因为定义的时区不同,所以显示的时间值不同。
      但 时间类型 不是Java 的标准数据类型, 在拿到 Data 或 LocalDateTime 时, 这里面是没有时区的,只有毫秒数。
      所以这时候 , Format 字符串的时候,就会出现问题。
    2. 本地化系统标准:需要本地时间表示,如上,当系统在传递 2018-10-17 09:00:00 时, 表示的是当地北京时间9点。
    3. Date.getYear 我以为会1970年会返回 1970, 其实返回 0。
    4. Date.getMonth 我以为1月会返回1 , 其实返回0。

    解决的方式:
    不以毫秒数为准。 以 年月日时分秒为准。即 以字符串表示为准。 表示当地时间。

    1. 字符串转时间时,按北京时间转换。
    2. 时间类型转换时,以 年月日时分秒 数据转换。
  • 相关阅读:
    设计模式整理_单例设计模式
    设计模式整理_工厂模式
    设计模式整理_装饰者模式
    设计模式整理_观察者模式
    设计模式整理_策略模式
    JavaSE复习_7 异常
    JavaSE复习_6 枚举类
    JavaSE复习_5 Eclipse的常见操作
    pta编程题19 Saving James Bond 2
    ImportError: No module named PIL
  • 原文地址:https://www.cnblogs.com/newsea/p/9759919.html
Copyright © 2020-2023  润新知