当前位置: 首页 > 知识库问答 >
问题:

如何转换从周一九月02 17:00:00 PDT 2019到09022019在groovy?

范文昌
2023-03-14

我正在从UI获取日期格式“Mon Sep 02 17:00:00 PDT 2019”以进行处理。但是我想转换成09022019。下面的代码我试过,但转换到一天前。

sampleDate = Mon Sep 02 17:00:00 PDT 2019 
sdf = new SimpleDateFormat("MMddyyyy")
sdf.format(sampleDate)

我正在09012019,但预计日期09022019。

请帮忙。

共有2个答案

萧安怡
2023-03-14

您需要为SimpleDateFormat添加setTimeZone

默认情况下,如果未指定,SimpleDataFormat将使用系统的默认时区。只需将代码的第二行更改为sdf=newsimpledateformat(“MMddyyyy z”)即可进行检查。也许这就是你得到09012019的原因。

还有一件事<代码>时区。getTimeZone(“PDT”)不返回PDT的时区对象。我猜是因为PDT不是一个时区,而是一个伪时区。然后我们将使用类似<code>TimeZone.getTimeZone(“America/Los_Angeles”)

sdf = new SimpleDateFormat("MMddyyyy")
sdf.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles"))
sdf.format(sampleDate)

无论系统时区如何,都将返回09022019。

徐昆
2023-03-14

假设您使用的是 Java 8 和 Groovy 2.5 ,则可以使用 Java 8 日期/时间 API:

import java.time.*
new Date("Mon Sep 02 17:00:00 PDT 2019").toZonedDateTime().format('MMddyyy')
 类似资料:
  • 我有一个类似以下的值,我希望将其转换为 如何转换这个?

  • 问题内容: 字段定义 二传手 有谁知道如何将“零日期”转换为适当的值?因为我有错误: 即使我像这样设置“默认”字段和设置器: 我仍然会有同样的问题。 问题答案: 在这里,我将大胆猜测您正在使用MySQL :-)它使用“零日期”作为特殊占位符 -不幸的是,JDBC默认情况下无法处理它们。 解决方案是将“ zeroDateTimeBehavior = convertToNull”指定为MySQL连接的

  • 问题内容: 字段定义 二传手 有谁知道如何将“零日期”转换为适当的值?因为我有错误: 即使我像这样设置“默认”字段和设置器: 我仍然会有同样的问题。 问题答案: 在这里,我将做出一个疯狂的猜测,即您正在使用MySQL :-)它使用“零日期”作为特殊的占位符 -不幸的是,默认情况下JDBC无法处理它们。 解决方案是将“ zeroDateTimeBehavior = convertToNull”指定为

  • 我有一个具有值的日期对象:- 星期一9月12日19:48:19 IST 2022 //上面代码的输出Mon Sep 12 19:48:19 IST 2022 现在我想得到这个类似2022-09-12 00:00:00.0格式的输出

  • 这就是我所拥有的。

  • 我需要在我的dim_date中添加新的业务wee,实际上我有一个月中的星期,如下表所示,每7天计算一次。 但是对于这个商业周专栏,一周应该从星期一开始,到星期日结束,即使第一周只有一天(当一个月从星期日开始时),但如果月份从星期五开始,我应该将其视为该月的第一周。 你有什么建议来计算这个吗?谢谢