Sun Studio 12:Fortran 库参考

1.4.51 timectimeltimegmtime:获取系统时间

这些例程具有以下函数:

time

标准版本:获取以整数表示的系统时间(自 GMT 1970 年 1 月 1 日 0 时起至今的秒数)

VMS 版本:获取以字符表示的系统时间 (hh:mm:ss) 

ctime

将系统时间转换为 ASCII 字符串。 

ltime

将系统时间分解成当地时间的月份、日期等等。 

gmtime

将系统时间分解成 GMT 时间的月份、日期等等。 

1.4.51.1 time:获取系统时间

time() 函数的调用方式如下所示:

INTEGER*4 time INTEGER*8

n = time() 标准版本

返回值 

INTEGER*4

输出 

自 GMT 1970 年 1 月 1 日 0:0:0 时起至今的时间(秒) 

 

INTEGER*8

输出 

在 64 位环境中,time 返回 INTEGER*8 值

函数 time() 返回自 GMT 1970 年 1 月 1 日 00:00:00 起至今的时间(秒)整数。这是操作系统时钟值。

示例:在操作系统中使用的 time() 标准版本:


demo% cat ttime.f
        INTEGER*4  n, time
        n = time()
        write(*,*) ’Seconds since 0 1/1/70 GMT = ’, n
        end
demo% f95 ttime.f
demo% a.out
 Seconds since 0 1/1/70 GMT =   913240205
demo%

1.4.51.2 ctime:将系统时间转换为字符

函数 ctime 转换系统时间 stime,并以由 24 个字符组成的 ASCII 字符串返回该值。

该函数的调用方式如下所示:

CHARACTER ctime*24

string = ctime( stime )

stime

INTEGER*4

输入 

通过 time()(标准版本)获得的系统时间

返回值 

character*24

输出 

以字符串表示的系统时间。ctimestring 声明为 character*24

下面的示例中显示了 ctime 返回值的格式。ctime(3C) 手册页中对此进行了介绍。

示例:ctime()


demo% cat tctime.f
        character*24 ctime, string
        INTEGER*4  n, time
        n = time()
        string = ctime( n )
        write(*,*) ’ctime: ’, string
        end
demo% f95 tctime.f
demo% a.out
 ctime: Wed Dec  9 13:50:05 1998
demo%

1.4.51.3 ltime:将系统时间分解成月份、日期等(当地时间)

该例程将系统时间分解成当地时区的月份、日期等。

该子例程的调用方式如下所示:

call ltime( stime, tarray )

stime

INTEGER*4

输入 

通过 time()(标准版本)获得的系统时间

tarray

INTEGER*4(9)

输出 

当地系统时间,包括年份、月份、日期等 

有关 tarray 中各元素的含义,请参见下一节。

示例:ltime()


demo% cat tltime.f
        integer*4  stime, tarray(9), time
        stime = time()
        call ltime( stime, tarray )
        write(*,*) ’ltime: ’, tarray
        end
demo% f95 tltime.f
demo% a.out
 ltime: 25 49 10 12 7 91 1 223 1
demo%

1.4.51.4 gmtime:将系统时间分解成月份、日期等 (GMT)

该例程将系统时间分解成 GMT 时间的月份、日期等。

此子例程的调用方式如下所示:

call gmtime( stime, tarray )

stime

INTEGER*4

输入 

通过 time()(标准版本)获得的系统时间

tarray

INTEGER*4(9)

输出 

GMT 系统时间,包括年份、月份、日期等 

示例:gmtime


demo% cat tgmtime.f
        integer*4  stime, tarray(9), time
        stime = time()
        call gmtime( stime, tarray )
        write(*,*) ’gmtime: ’, tarray
        end
demo% f95t tgmtime.f
demo% a.out
 gmtime:   12  44  19  18  5  94  6  168  0
demo%

下面是 ltimegmtimetarray() 值:索引、单位和范围:

秒 (0 - 61) 

分钟 (0 - 59) 

小时 (0 - 23) 

一个月中的天数 (1 - 31) 

自一月起的月份 (0 - 11) 

年份-1900 

星期几(星期日= 0) 

一年中的天数 (0 - 365) 

夏令时,如果实行夏令时,则为 1。 

C 库例程 ctime(3C) 对这些值进行了定义,它解释了系统可能会返回值大于 59 的秒数的原因。另请参见:idate(3F) 和 fdate(3F)。

1.4.51.5 ctime64gmtime64ltime64:64 位环境的系统时间例程

这些是例程 ctimegmtimeltime 的对应版本,用于在 64 位环境中进行移植。除了输入变量 stime 必须是 INTEGER*8 之外,它们与这些例程相同。

在 32 位环境中使用且 stimeINTEGER*8 时,如果 stime 值超出 INTEGER*4 范围,ctime64 的返回值全是星号,而 gmtimeltime 在 tarray 数组中填入 -1。