Fortran Coder

查看: 1829|回复: 5
打印 上一主题 下一主题

[通用算法] 运行执行程序获取日期时间有8个小时时差

[复制链接]

50

帖子

24

主题

0

精华

大师

F 币
1154 元
贡献
475 点
跳转到指定楼层
楼主
发表于 2023-5-29 16:52:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
运行执行程序获取日期时间有8个小时时差:

.........  
Call timestamp()
.........
Subroutine timestamp()

!*********************************************************************72
!
!c TIMESTAMP prints out the current YMDHMS date as a timestamp.
!
!  Parameters:
!
!    None
!
  Implicit None

  Character *(8) ampm
  Integer d
  Character *(8) date
  Integer h
  Integer m
  Integer mm
  Character *(9) month(12)
  Integer n
  Integer s
  Character *(10) time
  Integer y

  Save month

  Data month/'January  ', 'February ', 'March    ', 'April    ', 'May      ',&
  'June     ', 'July     ', 'August   ', 'September', 'October  ', &
  'November ', 'December '/

  Call date_and_time(date, time)

  Read (date, '(i4,i2,i2)') y, m, d
  Read (time, '(i2,i2,i2,1x,i3)') h, n, s, mm

  If (h<12) Then
    ampm = 'AM'
  Else If (h==12) Then
    If (n==0 .And. s==0) Then
      ampm = 'Noon'
    Else
      ampm = 'PM'
    End If
  Else
    h = h - 12
    If (h<12) Then
      ampm = 'PM'
    Else If (h==12) Then
      If (n==0 .And. s==0) Then
        ampm = 'Midnight'
      Else
        ampm = 'AM'
      End If
    End If
  End If

  Write (*, '(i2,1x,a,1x,i4,2x,i2,a1,i2.2,a1,i2.2,a1,i3.3,1x,a)') d, &
  month(m), y, h, ':', n, ':', s, '.', mm, ampm

  Return
End Subroutine timestamp

.......
.......

29 May       2023   8:41:23.777 AM      

NAS:
  FORTRAN95,2013&18 version

                The NAS kernel benchmark program

Program        Error          FP Ops        Seconds     MFLOPS

MXM          3.4313E-15     4.1943E+08      0.5338      785.70
CFFT2D       1.3326E-13     4.9807E+08      0.6031      825.91
CHOLSKY      2.8784E-12     2.2103E+08      0.5641      391.84
BTRIX        2.5033E-13     3.2197E+08      0.5741      560.85
GMTRY        1.8918E-13     2.2650E+08      0.4510      502.21
EMIT         2.0694E-15     2.2604E+08      0.0991     2281.00

...........

29 May       2023   8:41:27.221 AM      


...Program finished with exit code 0
Press ENTER to exit console.

*********************************************
     我的位置中国大陆广州, 目前日期时间: 20230529  16:49
足足八个小时时差,???
盼复! 谢谢!







分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

250

帖子

2

主题

0

精华

宗师

F 币
1731 元
贡献
872 点

规矩勋章

沙发
发表于 2023-5-29 19:51:32 | 只看该作者
在 Call date_and_time(date, time) 后面设置断点,看看 time 的值

834

帖子

2

主题

0

精华

大宗师

F 币
3922 元
贡献
2332 点
板凳
发表于 2023-5-30 08:56:07 | 只看该作者
date_and_time 返回的是执行代码的机器的本地时间。一般个人电脑是使用的当地时间,集群使用格林威治时间。

50

帖子

24

主题

0

精华

大师

F 币
1154 元
贡献
475 点
地板
 楼主| 发表于 2023-5-30 10:55:38 | 只看该作者
谢谢老师! 为了表达时不被误解,如何显示当地时间为好??!
示例:
,,,,,
  date_and_time:
日   期 date      : 20230530
开始时间 t1_str: 024725.131
结束时间 t2_str: 024727.409
结束时间用时分秒写法表示: 02:47:27.409
耗费的时间为(单位秒)   :    2.27734375
.......
  时差8小时。

50

帖子

24

主题

0

精华

大师

F 币
1154 元
贡献
475 点
5#
 楼主| 发表于 2023-5-30 11:26:19 | 只看该作者
啊,注意到了! 明白! 谢谢!

50

帖子

24

主题

0

精华

大师

F 币
1154 元
贡献
475 点
6#
 楼主| 发表于 2023-6-1 16:27:39 | 只看该作者
确实认识到了,时差的存在, 再仔细看了看,对照手表时间: 下述程序运行应该属于当地(非广州)同一时区,没有时差:
1.
complete time=0.05(sec.)            exection time=0.03(sec.)          13.09.44  Monday     11 Mar 85  WATFIV-MAR1980V2L0
2.                       0.02                                             0.22                  11.36.18  Monday       6 Jan  86                ...
3.                       0.02                                             0.00                  14.09.15  Saturday      4 Jan  86                ...
4.                       0.02                                             0.25                  15.03.21  Wednesday  8 Jan 86                ...
5.                       0.02                                             0.25                  15.01.47  Wednesday  8 Jan 86                ...
......
      

广州
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-11-1 08:11

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表