PotsyYZhou 发表于 2023-5-29 16:52:06

运行执行程序获取日期时间有8个小时时差

运行执行程序获取日期时间有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.

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







necrohan 发表于 2023-5-29 19:51:32

在 Call date_and_time(date, time) 后面设置断点,看看 time 的值

li913 发表于 2023-5-30 08:56:07

date_and_time 返回的是执行代码的机器的本地时间。一般个人电脑是使用的当地时间,集群使用格林威治时间。

PotsyYZhou 发表于 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小时。:-dizzy:

PotsyYZhou 发表于 2023-5-30 11:26:19

啊,注意到了! 明白! 谢谢! :-time:

PotsyYZhou 发表于 2023-6-1 16:27:39

确实认识到了,时差的存在, 再仔细看了看,对照手表时间: 下述程序运行应该属于当地(非广州)同一时区,没有时差:
1.
complete time=0.05(sec.)            exection time=0.03(sec.)          13.09.44Monday   11 Mar 85WATFIV-MAR1980V2L0
2.                     0.02                                             0.22                  11.36.18Monday       6 Jan86                ...
3.                     0.02                                             0.00                  14.09.15Saturday      4 Jan86                ...
4.                     0.02                                             0.25                  15.03.21Wednesday8 Jan 86                ...
5.                     0.02                                             0.25                  15.01.47Wednesday8 Jan 86                ...
......
:-time:       :-call:

广州
页: [1]
查看完整版本: 运行执行程序获取日期时间有8个小时时差