Date FormCalc日期函数不使用';t返回当前系统日期

Date FormCalc日期函数不使用';t返回当前系统日期,date,timezone,adobe,livecycle,Date,Timezone,Adobe,Livecycle,如何让date函数根据当前系统日期返回日期? 现在,对于下面的代码片段,它总是返回UK时间,而不是当前系统日期 <calculate> <script>$ = concat( num2date(date(), DateFmt()), " ", num2Time(Time(), TimeFmt()) )</script> $=concat(num2date(date(),DateFmt()),“”,num2Time(Time(),timemt()) 感谢

如何让date函数根据当前系统日期返回日期? 现在,对于下面的代码片段,它总是返回UK时间,而不是当前系统日期

<calculate>
<script>$ = concat( num2date(date(), DateFmt()), " ", num2Time(Time(), TimeFmt()) )</script>

$=concat(num2date(date(),DateFmt()),“”,num2Time(Time(),timemt())

感谢您的帮助

确切的时间可能不是英国时间,而是格林尼治标准时间(或UTC,用更精确的术语)。英国在冬季恰好与格林尼治标准时间一致,但在夏季,夏令时提前一小时到英国夏令时

现在,我自己从来没有使用过LiveCycle,但尽管如此,我已经通读了和的一些基本文档,在我看来,出现了一些关键错误

日期
时间
函数返回基于UTC的值,但只有与时间相关的函数知道本地时区。也就是说,有单独的
Num2Time
Num2GMTime
函数,但只有一个
Num2Date
函数

Num2Date
函数以整数天为单位工作,因此它们只是自
1900-01-01以来的天。因此,传递给函数的数字必须已经代表所需的时区。但是,
Date
函数仅获取当前GMT日期。似乎没有获取当前本地日期的函数

它在时间方面是不同的,因为它涉及毫秒精度。然而,这里还有另一个缺陷。尽管文档中说
Time
函数返回“自历元以来的毫秒数”,但实际上它只返回自格林威治标准时间午夜以来的毫秒数。从日期部分开始,没有逐日累积的毫秒数。他们甚至在他们的示例代码中撒谎,其中说:

将当前系统时间作为自历元以来的毫秒数返回

Time()=>71533235于2003年9月15日下午3:52:15准时发送给东部标准时区(EST)的用户

如果确实如此(并确保使用1900-01-01历元),则该值实际上将包括额外的327257280000毫秒,表示
1900-01-01
2003-09-15
之间的天数,使总时间戳达到3272644333235。此外,还有一个输入错误,因为他们给出的时间戳是3:52:13,而不是3:52:15。显然,没有人密切关注这些文档

真正的问题是,人们无法确定从当地时区的当前一天午夜起的毫秒数是否与每天相同。如果您使用的不是当前时间,而是过去存储的时间值,则如果由于夏令时的原因,当前偏移量不同,则您可能需要休息一小时(+或-)。示例:东部时间可能是UTC-5或UTC-4,但
Num2Time
功能将仅使用当前有效的偏移量,即使您使用的日期使用的是其他偏移量

因此,总而言之,
Date
功能不充分,导致您的观察,并且日期/时间功能总体设计欠佳。鉴于此API的限制,我甚至不能推荐一种解决方法。必须使用某种类型的
LocalDate
函数来代替
Date
函数,但它不存在


我能提供的唯一建议是,(根据我的研究,而不是经验)LiveCycle可以使用FormCalc或JavaScript。所以-改用JavaScript。

现在可能不是英国时间,而是GMT(或者UTC,用更精确的术语)。英国在冬季恰好与格林尼治标准时间一致,但在夏季,夏令时提前一小时到英国夏令时

现在,我自己从来没有使用过LiveCycle,但尽管如此,我已经通读了和的一些基本文档,在我看来,出现了一些关键错误

日期
时间
函数返回基于UTC的值,但只有与时间相关的函数知道本地时区。也就是说,有单独的
Num2Time
Num2GMTime
函数,但只有一个
Num2Date
函数

Num2Date
函数以整数天为单位工作,因此它们只是自
1900-01-01以来的天。因此,传递给函数的数字必须已经代表所需的时区。但是,
Date
函数仅获取当前GMT日期。似乎没有获取当前本地日期的函数

它在时间方面是不同的,因为它涉及毫秒精度。然而,这里还有另一个缺陷。尽管文档中说
Time
函数返回“自历元以来的毫秒数”,但实际上它只返回自格林威治标准时间午夜以来的毫秒数。从日期部分开始,没有逐日累积的毫秒数。他们甚至在他们的示例代码中撒谎,其中说:

将当前系统时间作为自历元以来的毫秒数返回

Time()=>71533235于2003年9月15日下午3:52:15准时发送给东部标准时区(EST)的用户

如果确实如此(并确保使用1900-01-01历元),则该值实际上将包括额外的327257280000毫秒,表示
1900-01-01
2003-09-15
之间的天数,使总时间戳达到3272644333235。此外,还有一个输入错误,因为他们给出的时间戳是3:52:13,而不是3:52:15。显然,没有人密切关注这些文档

真正的问题是,人们无法确定从c语言午夜开始的毫秒数