Java中,尽量相信自己,使用自己写的方法,不要使用底层提供的方法。都是坑。
Date转LocalDate时,调用toInstant()报UnsupportedOperationException异常。
MediaType.TEXT_PLAIN 使用的不是 utf-8
Charset.defaultCharset()
你相信系统,想利用系统字符集, 但系统字符集并不统一。我们在给自己找事。 我们花精力理解去理解它更没有意义。
无用的学习成本。
比如 logback-spring.xml 里可以使用的变量,学习这些变量, 对编程本身没有意义。当换一个组件, 或大版本升级, 这些知识就都废了。
时间及时区
所有时间的字符串表示, 都定义为: 北京时间, 如: 2018-10-17 09:00:00 , 就是北京的上班时间。
如: 客户端提交的时间, 数据库保存的时间。不管是 Date , LocalDateTime , 都表示北京时间。
之所以混乱是因为多套标准,并且标准混乱。:
- 系统定义的标准: 以UTC时间为准, 世界任何一个地方, 同一时间获取的时间, 毫秒数相同, 但因为定义的时区不同,所以显示的时间值不同。
但 时间类型 不是Java 的标准数据类型, 在拿到 Data 或 LocalDateTime 时, 这里面是没有时区的,只有毫秒数。
所以这时候 , Format 字符串的时候,就会出现问题。 - 本地化系统标准:需要本地时间表示,如上,当系统在传递 2018-10-17 09:00:00 时, 表示的是当地北京时间9点。
- Date.getYear 我以为会1970年会返回 1970, 其实返回 0。
- Date.getMonth 我以为1月会返回1 , 其实返回0。
解决的方式:
不以毫秒数为准。 以 年月日时分秒为准。即 以字符串表示为准。 表示当地时间。
- 字符串转时间时,按北京时间转换。
- 时间类型转换时,以 年月日时分秒 数据转换。
![]() |
作者:NewSea 出处:http://newsea.cnblogs.com/
QQ,MSN:iamnewsea@hotmail.com 如无特别标记说明,均为NewSea原创,版权私有,翻载必纠。欢迎交流,转载,但要在页面明显位置给出原文连接。谢谢。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
2013-10-09 SharpDevelop 笔记
2007-10-09 解决ASP 2.0中GridView控件的删除、插入、编辑命令操作客户端确认问题的另一方法