如何获得礼物;“标准时间”;来自特定时区的fortran代码
我正在笔记本电脑上运行一个数字模型,对意大利进行实时预测。我注意到我有一个小错误:我检查我的笔记本电脑上是否收到一些电台的数据(这些数据在意大利标准时间午夜发送给我),如果在N小时后我没有收到特定的数据,我运行模拟无论如何发出警告。N通常为5小时,但可以从输入文件更改。现在的问题是:我使用fortran调用:如何获得礼物;“标准时间”;来自特定时区的fortran代码,fortran,clock,Fortran,Clock,我正在笔记本电脑上运行一个数字模型,对意大利进行实时预测。我注意到我有一个小错误:我检查我的笔记本电脑上是否收到一些电台的数据(这些数据在意大利标准时间午夜发送给我),如果在N小时后我没有收到特定的数据,我运行模拟无论如何发出警告。N通常为5小时,但可以从输入文件更改。现在的问题是:我使用fortran调用: call date_and_time(date=clock_date, & ! character(len=8) ccyymmdd
call date_and_time(date=clock_date, & ! character(len=8) ccyymmdd
time=clock_time) ! character(len=10) hhmmss.sss
这很好,但它给了我夏时制时间,而我接收数据和所有模拟的时间都是标准时间。此外,由于我经常旅行,如果我在美国,阅读的时间是完全错误的。有没有办法得到某个时区的标准时间?因为在将来测试之后,我会把代码转移到意大利的一台台式电脑(运行windows)上,这就足够从那台电脑上获得标准时间了。如果不可能,作为最后手段,是否有办法将计算机时钟与服务器同步以证明标准时间
谢谢。
A.
日期和时间
还有一个名为区域
的附加参数。请参阅手册
代码
character(len=8) clock_date
character(len=10) clock_time
character(5) zone
call date_and_time(date=clock_date, & ! character(len=8) ccyymmdd
time=clock_time, & ! character(len=10) hhmmss.sss
zone=zone)
print *,clock_date
print *,clock_time
print *,zone
end
印刷品
20141018
112233.644
+0200
您可以轻松地使用该
+0200
从指示时间中减去这2小时,以获得UTC时间。正如High Performance Mark所指出的,您还可以使用数组`值的值。如果你跨过午夜,别忘了调整日期。要添加到@VladimirF已经编写的日期和时间
中,可以使用另一个可选的意图(out)
参数,值
,这是一个由8个元素组成的整数数组。如果使用,则在从呼叫返回时,值(4)
报告与当地时间UTC的偏移量(以分钟为单位),或-巨大(0)
(如果不可用)。值的其他元素
以整数的形式返回日期和时间的其他组成部分,以避免在字符串转换过程中出现混乱。Ops,我当然对值有了新的了解,但我错过了该特定字段,因为我希望它位于数组的and处。谢谢,这解决了问题。但我通常可以跨越午夜,改变年份或月份……因此我必须编写一个子程序,将-24和24之间的值相加或相减,以确定日期,并考虑闰年,这并不困难,但仍然需要一些额外的工作……您还可以在Windows的GetSystemTime
函数周围使用Fortran包装器。我在Linux上使用这样的解决方案。