【发布时间】:2021-01-28 15:20:58
【问题描述】:
日期/时间值以正确的 UTC 格式存储在我们的服务器中。但是当服务器查询日期时,它会将其转换为服务器本地时区,这不一定是发起查询的设备的时区。我试图根据输入参数简单地调整时间以将其返回到 UTC,以便它可以在 UTC 中返回到应用程序。但是当我尝试解析日期以便调整时间时,我遇到了掩码错误。
我很难为这种格式获取正确的掩码:2020-12-21T13:00:00.000+0000
输入值:2021-01-28T12:30:00.000+0000
尝试的掩码:yyyy-MM-dd'T'HH:mm:ss
错误:没有方法签名:java.text.SimpleDateFormat.parse() 是 适用于参数类型:(java.util.Date)值:{Thu Jan 28 12:30:00 UTC 2021}(在 groovy 脚本中); 原因:没有方法签名:java.text.SimpleDateFormat.parse() 适用于参数类型: (java.util.Date) 值:{Thu Jan 28 12:30:00 UTC 2021}
代码:
import java.util.GregorianCalendar;
import java.util.Calendar;
import java.util.Date;
import java.text.SimpleDateFormat;
SimpleDateFormat inDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.ENGLISH);
SimpleDateFormat outDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.ENGLISH);
int minutesToAdd = (Hours * 60) + Minutes ;
Calendar C = Calendar.getInstance();
java.util.Date D = inDate.parse(InputDate);
if (D!='')
{
C.setTime(D);
C.add(Calendar.MINUTE, minutesToAdd);
OutputDate=outDate.format(C.getTime());
}
else
{
OutputDate = ''
}
任何建议将不胜感激。
【问题讨论】:
-
您已经根据此错误将日期传递给解析。请添加您尝试过的代码以及失败的原因(例如错误、堆栈跟踪、日志等),以便我们对其进行改进。
-
JavaScript 还是 Java? ---
java.text.让我想到 Java。 -
我建议你不要使用
SimpleDateFormat和Date。这些类设计不佳且早已过时,尤其是前者,尤其是出了名的麻烦。而是使用来自java.time, the modern Java date and time API 的OffsetDateTime。 -
上述代码在将其按摩为真正独立后工作正常。我支持我的评估,
InputDate已经是java.util.Date。
标签: java groovy simpledateformat boomi