gpt4 book ai didi

groovy - 在 Groovy 中将以毫秒为单位的时间转换为日期格式 (YYYY-MM-DD)

转载 作者:行者123 更新时间:2023-12-01 15:02:28 27 4
gpt4 key购买 nike

在 Groovy 中是否有将以毫秒为单位的时间转换为日期格式 (YYYY-MM-DD) 的函数?

我有一个 Groovy 脚本,需要按如下方式与日期值进行比较:

for(i in order_lineitems) 
{
if(i.startDate==order_submit_date)
{
matchedIds1 += i.salesOrderLineitemId+',';
}
}

此处 i.startDate 具有日期格式 yyyy-mm-dd时间(以毫秒为单位)order_submit_date具有日期格式 yyyy-MM-dd HH:mm:ss时间(以毫秒为单位)。我需要在 if block 本身内将 order_submit_date 转换为这种格式 yyyy-mm-dd

我是 Groovy 脚本的新手,我需要这里的帮助。

我的代码中有一个小错误。我纠正了它。if block 应如下所示 if (i.startDate == order_submit_date) 并且两者都是以毫秒表示的长值。

现在我需要确保条件正确,即开始日期等于订单提交日期。

这里发生的事情是:i.startDate 的值为 1452105000000 (Thu Jan 07 2016 00:00:00),它在创建销售订单时存储在数据库中order_submit_date 的值为 1452158393097(2016 年 1 月 7 日星期四 14:49:53),当用户在 UI 中提交销售订单以供审批时,该值会在流程中生成。现在因为 order_sbmit_date 有日期和时间长值是不同的并且不能满足条件。

因此,现在我有一个问题,是否有一个函数 in groovy 可以将我的 order_submit_date 长值转换为 Date(yyyy-mm-dd) 格式,然后比较两个值以满足 if block 。

最佳答案

您可以像这样以毫秒为单位比较您的日期:

请注意,解决方案取决于时区。

常规选项:

def compare(def m1, def m2) {
def dateInMillis1 = new Date(m1)
def dateInMillis2 = new Date(m2)
dateInMillis1.clearTime() == dateInMillis2.clearTime()
}

Java 选项 1:

boolean compare1(long millis1, long millis2) {
Date dateFromMillis = new Date(millis1);
Date dateFromMillis2 = new Date(millis2);
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-DD");
sdf.format(dateFromMillis).equals(sdf.format(dateFromMillis2));
}

或者您可以使用日历:

Java 选项 2:

boolean compare2(long m1, long m2) {
Calendar calendar1 = Calendar.getInstance();
calendar1.setTimeInMillis(m1);
Calendar calendar2 = Calendar.getInstance();
calendar2.setTimeInMillis(m2);
return calendar1.get(Calendar.YEAR) == calendar2.get(Calendar.YEAR) &&
calendar1.get(Calendar.MONTH) == calendar2.get(Calendar.MONTH) &&
calendar1.get(Calendar.DAY_OF_MONTH) == calendar2.get(Calendar.DAY_OF_MONTH);
}

关于groovy - 在 Groovy 中将以毫秒为单位的时间转换为日期格式 (YYYY-MM-DD),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34651031/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com