Coldfusion 从currentTimeMillis中减去毫秒

Coldfusion 从currentTimeMillis中减去毫秒,coldfusion,Coldfusion,我们的服务器不同步,距离东部时间提前2分钟 我想从当前时间减去2分钟 <cfdump var="#getCurrentTimeWithOffset(2)#"> private numeric function getCurrentTimeWithOffset(minutesOffset) { var minutesToMilis = arguments.minutesOffset * 60 * 1000; var currentTimeMillis = crea

我们的服务器不同步,距离东部时间提前2分钟

我想从当前时间减去2分钟

<cfdump var="#getCurrentTimeWithOffset(2)#">

private numeric function getCurrentTimeWithOffset(minutesOffset)
{


    var minutesToMilis = arguments.minutesOffset * 60 * 1000;
    var currentTimeMillis = createObject("java", "java.lang.System").currentTimeMillis();
    var returnTime = currentTimeMillis - minutesToMilis;


    return returnTime;
} 

专用数字函数getCurrentTimeWithOffset(分钟偏移量)
{
var minutesToMilis=arguments.minutesOffset*60*1000;
var currentTimeMillis=createObject(“java”,“java.lang.System”).currentTimeMillis();
var returnTime=currentTimeMillis-minutesToMilis;
返回时间;
} 
如何从currentTimeMillis()中减去毫秒


我的当前函数返回1.58288854019E+012,该函数将int转换为指数格式。

大数字可以通过CF引擎以不同的方式输出。该值仍然可以按预期用于其他目的。如果您希望它以整数的形式清晰地显示,可以将其包装在
int()
中,从而简化Adobe CF的输出,或者完全控制
numberFormat()
及其各种选项。

您的减法操作正确。1.58288854019E+012只是表示,它的值与显示为正常数字的值没有什么不同。我认为您不想在代码中更新服务器的时间。解决真正的问题。更新服务器上的服务器时间。它们应该与同一个源系统同步。@Miguel-F这是真的。我已经同步到pool.ntp.org来修正服务器时间,但仍然提前了2分钟。我正在通过代码探索其他选项。这是个坏主意,但有可能。可能还有其他问题。如果您将时间与单个源同步,则应该是相同的。这就是ntp服务器的全部用途。您希望从您的功能中得到什么?我不确定它是否向你展示了你认为它是什么。从1970-01-01午夜开始的毫秒数减去120000,这将得到一个很长的数字(因此是科学记数法)。你在找一个日期对象吗?不过这个数字很没用。这是从1970年1月1日开始的毫秒数的科学表示法,当时的计算是通过对已知输入的推断来完成的。是的,它可以转换回日期,但这看起来确实是一个X-Y问题。如果目标是修复错误的时间偏移,那么我的建议是:1)修复导致偏移的问题,或2)使用语言中已内置的日期函数之一添加假定的2分钟。@vlad它是这样显示的,因为该数字大于
int
可以设置的值。它们最多只能达到约21.5亿。自Unix时代以来的毫秒数相当大。
int
在1970年1月第一个月结束之前,已无法显示自历元以来的
毫秒。你的数字基本上是说,从1970年1月1日午夜到现在已经是1582947543130毫秒了。1582947543130琐碎的时间:由于许多系统仍然以
int
测量Unix Epoch以来的
秒数,那么在2038 GMT,1月19日凌晨3:14左右,我们将遇到一些问题。幸运的是,一些非常聪明的人注意到了2000年1月1日处理类似问题的其他非常聪明的人的警告。@Vlad我要再次问,你为什么需要关心这个数字?实际日期的数学计算会更准确。修复导致偏移的问题会更好。