Java 将日期转换为长时间的问题
我使用Java从Excel工作表中提取数据,加载到Hubspot中。 以下是数据的外观: 该日期2018-12-31一旦进入侧轮毂位置,将变为2017年12月31日。 这是错误的 这是我的密码:Java 将日期转换为长时间的问题,java,date,Java,Date,我使用Java从Excel工作表中提取数据,加载到Hubspot中。 以下是数据的外观: 该日期2018-12-31一旦进入侧轮毂位置,将变为2017年12月31日。 这是错误的 这是我的密码: SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); df.setTimeZone(TimeZone.getTimeZone("UTC")); Date dt = null;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
df.setTimeZone(TimeZone.getTimeZone("UTC"));
Date dt = null;
try {
dt = df.parse(member.getUsageEndDate());
} catch (java.text.ParseException e3) {
//dt = null;
e3.printStackTrace();
}
Long l = dt.getTime();
如果我在记事本中打开数据,它看起来是这样的:2018年5月31日
我怎样才能正确地转换它?tl;博士
1546214400000
细节
避免遗留日期时间类
您使用的是很麻烦的旧日期时间类,这是由于java 8和更高版本中内置的java.time类的出现而遗留下来的
ISO 8601
您的输入字符串恰好符合标准格式。在java.time解析/生成字符串时默认使用这些格式。因此,无需指定格式化模式
LocalDate ld = LocalDate.parse( "2018-12-31" ) ;
一天中的第一刻
显然,您需要在UTC的一天中的第一个时刻。与常量连用
转储到控制台
System.out.println( "odt.toString(): " + odt );
看这个
odt.toString():2018-12-31T00:00Z
纪元
您似乎想要自1970年第一个时刻的历元参考日期(UTC,1970-01-01T00:00Z)起的毫秒计数。提取一个对象,java.time中的基本构建块类,并调用其handy方法
看这个
1546214400000
往另一个方向走
Instant instant = Instant.ofEpochMilli( 1_546_214_400_000L ) ;
关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,& 该项目现已启动,建议迁移到类 要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是 从哪里获得java.time类
- ,及以后
- 内置的李>
- 标准JavaAPI的一部分,带有捆绑实现
- Java9添加了一些次要功能和修复
- 及
- 大部分java.time功能都在中向后移植到Java6和Java7
-
- 该项目专门为Android采用了ThreeTen Backport(如上所述)
- 看
LocalDate ld = LocalDate.parse( "2018-12-31" ) ;
一天中的第一刻
显然,您需要在UTC的一天中的第一个时刻。与常量连用
转储到控制台
System.out.println( "odt.toString(): " + odt );
看这个
odt.toString():2018-12-31T00:00Z
纪元
您似乎想要自1970年第一个时刻的历元参考日期(UTC,1970-01-01T00:00Z)起的毫秒计数。提取一个对象,java.time中的基本构建块类,并调用其handy方法
看这个
1546214400000
往另一个方向走
Instant instant = Instant.ofEpochMilli( 1_546_214_400_000L ) ;
关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,& 该项目现已启动,建议迁移到类 要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是 从哪里获得java.time类
- ,及以后
- 内置的李>
- 标准JavaAPI的一部分,带有捆绑实现
- Java9添加了一些次要功能和修复
- 及
- 大部分java.time功能都在中向后移植到Java6和Java7
-
- 该项目专门为Android采用了ThreeTen Backport(如上所述)
- 看
该项目使用其他类扩展了java.time。这个项目是java.time将来可能添加的一个试验场。您可以在这里找到一些有用的课程,例如、、和。在格林尼治标准时间,实际上是2018年12月31日星期一上午12:00:00,有效!格林尼治标准时间正在运行。如果有任何问题,我会告诉你。2018年12月31日星期一03:00:00东部???在格林尼治标准时间内,实际上是2018年12月31日星期一12:00:00开始工作!格林尼治标准时间正在运行。如果有任何问题,我会告诉你。2018年12月31日星期一03:00:00东部???