Fortran毫秒时间转换

系统时间和GMT时间

shell中的date命令可以显示当前的系统时间(1900年以来经过多少秒)和GMT时间(格林威治时间年月日时分秒)

date +GMT%Y-%m-%dT%H:%M:%S.%6N=UT%s.%6N
#输出为GMT2022-06-11T15:30:39.566390=UT1654932639.566390

Fortran将毫秒系统时间转GMT时间

GMT的时间转换函数主要有gmtime,ltime,ctime等,它们都需要输入整数,对于毫秒微妙的时间可以使用以下方式:

      dimension itt(9)
      double precision t0
      character*17     cha
      integer*8        icha
      integer          iyear,imonth,iday,ihour,imin,isec,ims
c 待转换的系统时间
      t0 = 1654932639.566390
c 将双精度浮点数转为字符串
      write(cha,'(F17.6)')    t0
c 提取系统时间的整数部分作为秒数
      read(cha(1:11),'(I11)') icha
c 提取系统时间的小数部分作为毫秒
      read(cha(12:),'(I6)'    ims
c 将整数转为年月日时分秒
      call ltime(icha,itt)
      !call gmtime(icha,itt) !gmtime在本机器上ifort中未能正确输出itt(4)
      iyear  = itt(6)+1900
      imonth = itt(5)+1
      iday   = itt(4)
      ihour  = itt(3)
      imin   = itt(2)
      isec   = itt(1)
      write(6,100) t0,iyear,imonth,iday,ihour,imin,isec,ims
100   format("UT",f17.6,"=GMT",I4,"-",I2,"-",I2,"T",I2,":",I2,":",I2,".",I6)
C 输出UT1654932639.566390=GMT2022-06-11T15:30:39.566390
posted @ 2022-06-11 16:30  Philbert  阅读(191)  评论(0编辑  收藏  举报