Salesforce apex中日期时间字段中的日期差(以天为单位)

Salesforce apex中日期时间字段中的日期差(以天为单位),salesforce,apex-code,apex,Salesforce,Apex Code,Apex,如何找到两个datetime字段的天数差异 我在文件上找不到关于这个的任何东西。我可以看到有一些方法可以增加小时,天,但找不到任何关于日期差异的方法 我能想到的一种方法是使用valueof将这两个字段转换为datetime,并使用date函数daysbetween integer Days__c = Date.today().daysBetween(date.valueof(datetimefield__c)); 还有其他更好的选择吗?您可以这样做: integer Days = In

如何找到两个datetime字段的天数差异

我在文件上找不到关于这个的任何东西。我可以看到有一些方法可以增加小时,天,但找不到任何关于日期差异的方法

我能想到的一种方法是使用valueof将这两个字段转换为datetime,并使用date函数daysbetween

    integer Days__c = Date.today().daysBetween(date.valueof(datetimefield__c));
还有其他更好的选择吗?

您可以这样做:

integer Days = Integer.valueOf((Date2.getTime() - Date1.getTime())/(1000*60*60*24));
这会将每个日期转换为毫秒,从另一个日期中减去一个,然后将其转换为天数的整数。或者可以转换成十进制天数

您可以这样做:

integer Days = Integer.valueOf((Date2.getTime() - Date1.getTime())/(1000*60*60*24));
Datetime startDate = system.now();// Start date
Datetime endDate = system.now().addHours(60);//End Date

Integer noOfDays = startDate.Date().daysBetween(endDate.Date());
System.debug('No Of Days : '+noOfDays);

Datetime sameDayEndDate = startDate.addDays(noOfDays);
System.debug('Same Day : '+sameDayEndDate);

Decimal decHours = ((endDate.getTime())/1000/60/60) - ((sameDayEndDate.getTime())/1000/60/60);
System.debug('Dec Hours : '+decHours); 

decimal decMinutes = ((endDate.getTime())/1000/60) - ((sameDayEndDate.getTime())/1000/60);
System.debug('Minutes : '+decMinutes);

这会将每个日期转换为毫秒,从另一个日期中减去一个,然后将其转换为天数的整数。或者可以转换成十进制天数

您是否尝试过
datetime DayDifference=Date.today()-Date.valueof(datetimefield\uu\c)
?我相信我以前已经成功地减去了一个差。您是否尝试过
datetime DayDifference=Date.today()-Date.valueof(datetimefield\uu\c)
?我相信我以前成功地减去了一个差。
Datetime startDate = system.now();// Start date
Datetime endDate = system.now().addHours(60);//End Date

Integer noOfDays = startDate.Date().daysBetween(endDate.Date());
System.debug('No Of Days : '+noOfDays);

Datetime sameDayEndDate = startDate.addDays(noOfDays);
System.debug('Same Day : '+sameDayEndDate);

Decimal decHours = ((endDate.getTime())/1000/60/60) - ((sameDayEndDate.getTime())/1000/60/60);
System.debug('Dec Hours : '+decHours); 

decimal decMinutes = ((endDate.getTime())/1000/60) - ((sameDayEndDate.getTime())/1000/60);
System.debug('Minutes : '+decMinutes);