Sun Dec 31 19:00:00 CST 1899格式的字符串转Date
背景问题:
今天在做Excel动态列解析的时候,发现Excel中的日期解析出来居然是这种格式,emmm,这是个啥?
并且发现,通过直接new Date的方式,然后通过SimpleDateFormat格式化后,时间变了?我TM啥东西
通过不懈的百度终于得知了,这个时间是计算机的起始默认时间
在Excel中为 19:00 的单元格,被解析完成后,变成了"Sun Dec 31 19:00:00 CST 1899"
年月日直接变成了1899/12/31
解决方案:
那么这种格式的时间字符串如何正确的格式化为Date呢?
百度后我封装成了一个工具类,拿出来分享
解析工具类
package utils;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;/*** 日期格式化工具类* @author ZYGisComputer*/
public class DateFormatUtil {public static Date parse(String str, String pattern, Locale locale) {if(str == null || pattern == null) {return null;}try {return new SimpleDateFormat(pattern, locale).parse(str);} catch (ParseException e) {e.printStackTrace();}return null;}public static String format(Date date, String pattern, Locale locale) {if(date == null || pattern == null) {return null;}return new SimpleDateFormat(pattern, locale).format(date);}}
调用类
String date = "Sun Dec 31 19:00:00 CST 1899";Date parse1 = DateFormatUtil.parse(date, "EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);String format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(parse1);System.out.println(format);
执行结果
1899/12/31 19:00:00
到此日期解析完成!可以发现我们是需要指定时区的,但是我试过换成CHINA时区就会报错[捂脸]
作者:彼岸舞
时间:2020\11\25
内容关于:工作中用到的小技术
本文属于作者原创,未经允许,禁止转发
Sun Dec 31 19:00:00 CST 1899格式的字符串转Date相关推荐
- 时间格式 2016-08-15T16:00:00.000Z
我修改的时间是2016-08-16(转换成Date后默认为2016-08-16 00:00:00),而我得到的时间却是2016-08-15T16:00:00.000Z 联想到我们当前的时区是+8区 ...
- mysql查找操作返回值出现 - [User{id=1, userName='null', date=Sun Sep 16 00:00:00 CST 2018}]
在后台进行对mysql数据的添加和查找时出现了下面的问题 2018-09-17 23:27:32.541 INFO 28620 --- [ main] com.example.demo.DemoApp ...
- spring mvc get 请求 对于 “Sun Sep 29 00:28:16 CST 2019”格式日期的处理
1.首先spring mvc 没有指定 日期处理格式,比如 spring.mvc.date-format=yyyy-MM-dd HH:mm:ss 或者 其他形式的日期转化配置: 2.get请求参数为 ...
- 打印出来是Thu Jan 01 08:00:00 CST 1970的原因???
打印出来是Thu Jan 01 08:00:00 CST 1970的原因 打印出来的时间是8点而非0点,原因是存在系统时间和本地时间的问题,其实系统时间依然是0点,只不过我的电脑时区设置为东8区,故打 ...
- SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59
SqlDateTime 溢出.必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM之间 2009年10月10日 星期六 17:11 错误提示:" ...
- 格林威治时间(Tue Jan 01 00:00:00 CST 2019)[ Date ]转化 为 [ 2019-01-01 10:10:10 ]
格林威治时间(Tue Jan 01 00:00:00 CST 2019)[ Date ]转化 为 [ 2019-01-01 10:10:10 ] String date = "Thu Sep ...
- 【.NET】SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM之间
#背景 向sqlserver数据库中一个datetime字段插入DateTime.MinValue时, 出现问题: SqlDateTime 溢出.必须介于 1/1/1753 12:00:00 AM 和 ...
- # 将日期的符串(Sat Mar 21 08:00:00 CST 2020 )转换为指定字符串日期(yyyy-MM-dd HH:mm:ss)
将日期的符串(Sat Mar 21 08:00:00 CST 2020 )转换为指定字符串日期(yyyy-MM-dd HH:mm:ss) String str = "Sat Mar 21 0 ...
- 格式化格林威治时间(Wed Aug 01 00:00:00 CST 2018)
在做excel导入数据时候,excel里的日期是格林威治时间,普通格式化不行,这里总结一下格式化格林威治时间的方法: 1.如果格林威治时间时间是date类型.(这种格式最简单) SimpleDateF ...
- Sun Jan 05 2020 00:00:00 GMT 0800 (中国标准时间) 时间转换为 2020-01-05 08:00:00
转换yyyy-MM-dd HH:mm:ss( DateUtil) import java.text.SimpleDateFormat; import java.util.Date; import ja ...
最新文章
- Android 表格HorizontalScrollView+ListView
- python 数组数据类型
- maven设置本地仓库路径
- [转载]VC++程序员应当如何阅读ADO文档
- 如何用计算机仿真解决能源危机,计算机仿真技术在安全领域内的应用.pdf
- UVA 12716 GCD XOR(数论+枚举+打表)
- mysql数据库enum部分乱码_要慎用mysql的enum字段的原因
- dp---数字三角形问题
- Cglib 代码生成库使用快速入门
- AutoJs学习-实现取色器
- Protel99SE覆铜笔记
- SEO系列之站内优化
- 箱形图适用于哪种数据_Excel 数据可视化:箱形图全面解析!
- Millet谷仓:新型电商势在必行
- linux 格式化工具 mkfs 简介
- 具有遗传性疾病和性状的遗传位点分析
- 仙人掌之歌——上线运营(1)
- 火遍全世界的网红美女李子柒一年能赚多少钱,数据量化给你看,连中央媒体都为她打call...
- STVP ST Visual Programmer 下载程序出错
- 一键备份脚本 backup.sh