Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获得礼物;“标准时间”;来自特定时区的fortran代码_Fortran_Clock - Fatal编程技术网

如何获得礼物;“标准时间”;来自特定时区的fortran代码

如何获得礼物;“标准时间”;来自特定时区的fortran代码,fortran,clock,Fortran,Clock,我正在笔记本电脑上运行一个数字模型,对意大利进行实时预测。我注意到我有一个小错误:我检查我的笔记本电脑上是否收到一些电台的数据(这些数据在意大利标准时间午夜发送给我),如果在N小时后我没有收到特定的数据,我运行模拟无论如何发出警告。N通常为5小时,但可以从输入文件更改。现在的问题是:我使用fortran调用: call date_and_time(date=clock_date, & ! character(len=8) ccyymmdd

我正在笔记本电脑上运行一个数字模型,对意大利进行实时预测。我注意到我有一个小错误:我检查我的笔记本电脑上是否收到一些电台的数据(这些数据在意大利标准时间午夜发送给我),如果在N小时后我没有收到特定的数据,我运行模拟无论如何发出警告。N通常为5小时,但可以从输入文件更改。现在的问题是:我使用fortran调用:

    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上使用这样的解决方案。