数值日期表示中一个经典的问题就是不同国家摆放日月年的顺序是不一致的,而这也正是引入ISO-8601日期元素和交换格式的原因之一(Randall Monroe在他的博客中对此有精彩的总结和描述)。而在即将发行的新版Wolfram语言中就内置了支持ISO日期格式的功能:
ISO规范还具有其他的日期表现形式,比如周时间(年,第几周,周几)和序数日期(年,第几天)
除了ISO-8601格式以外,新版Wolfram 语言还将新增2个时间数值表达式:UnixTime和JulianDate。其中UnixTime能计算从1970年1月1日0点0秒后到某个时间所经过的秒数,以世界协调时间表示。而JulianDate表示的是从公元前4714年12月24日12时0分0秒到某个时间所经过的天数。
UnixTime是AbsoluteTime的某种变形,它能计算从1970年1月1日0点0秒后到你所在时区的某个时间所经过的秒数,以世界协调时间表示。这两者之间一个重要的不同点在于UnixTime的输出时区总是世界协调时间,这也是为什么它被广泛用作时间标记的原因。FromUnixTime取UnixTime的值并返回一个相应的DateObject:
JulianDate被广泛应用于天文计算领域,例如对以下SiderealTime的估算:
Wolfram语言拥有内置的SiderealTime函数,以下是利用该函数的估算结果:
Juliant还用于表达许多较简单的日历系统(该系统将日期表达为纪元日期:2月18,公元前747年)
为验证正误,我输入纪元日期来验证我得到的是正确答案:
而反向操作很简单,只需要将年、月、日的时间加起来,并利用FromJulianDate得到一个恰当的DateObject表达式:
我还可以利用纪元日历验证我们的公式:
我还可以用我们更近的日期来验证结果,比如今天:
这里展示了了Wolfram语言中的其他日期表达式:
以上展示了新版本Wolfram语言新增的日期与时间功能的一些用法。在新版本发布以后,欢迎您在Wolfram Tweet-a-Program或者是Wolfram社区中分享您的应用与案例。敬请期待!