oracle 获取格林威治时间,1.4.7 date:获取以字符串表示的当前日期 (Sun Studio 12:Fortran 库参考)...

1.4.7 date:获取以字符串表示的当前日期

注 –

由于该例程只返回两位数值的年份,因此它存在“2000 年安全”问题。在 1999 年 12 月 31 日之后,使用该例程输出计算日期差异的程序可能无法正常工作。如果执行使用此 date() 例程的程序,第一次调用该例程时会显示运行时警告消息,向用户发出报警。请参见另一个可换用的例程 date_and_time()。

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

call date(c )

cCHARACTER*9输出变量、数组、数组元素或字符子串

返回的字符串 c 的格式为 dd-mmm-yy,其中 dd 表示两位数的当月日期,mmm 表示三个字母的月份缩写,yy 表示两位数的年份(因此存在 2000 年安全问题!)。

示例:date:

demo% cat dat1.f

* dat1.f -- Get the date as a character string.

character c*9

call date ( c )

write(*,"(’ The date today is: ’, A9 )" ) c

end

demo% f95 dat1.f

demo% a.out

Computing time differences using the 2 digit year from subroutine

date is not safe after year 2000.

The date today is: 9-Jan-02

demo%

另请参见 idate() 和 date_and_time()。

1.4.7.1 date_and_time:获取日期和时间

这是一个 2000 年安全的 Fortran 95 内例程。

子例程 date_and_time 返回实时时钟和日期的相关数据。返回数据包括本地时间以及本地时间与通用协调时间 (Universal Coordinated Time, UTC) 之间的时差,通用协调时间也称为格林威治标准时间 (Greenwich Mean Time, GMT)。

子例程 date_and_time() 的调用方式如下:

call date_and_time( date, time, zone, values )

dateCHARACTER*8输出以 CCYYMMDD 格式表示的日期,其中 CCYY 表示四位数的年份,MM 表示两位数的月份,DD 表示两位数的当月日期。例如:19980709

timeCHARACTER*10输出以 hhmmss.sss 格式表示的当前时间,

其中 hh 表示小时,mm 表示分钟,ss.sss 表示秒和毫秒。

zoneCHARACTER*5输出与 UTC 的时差,以小时数和分钟数表示,采用 hhmm 格式。

valuesINTEGER*4 VALUES(8)输出下面介绍的 8 个元素组成的整数数组。

INTEGER*4 values 数组中返回的 8 个值为

VALUES(1)以 4 位整数表示的年份。例如:1998。

VALUES(2)以从 1 到 12 的整数表示的月份。

VALUES(3)以从 1 到 31 的整数表示的当月日期。

VALUES(4)以分钟数表示的与 UTC 的时差。

VALUES(5)以从 1 到 23 的整数表示的当天小时时间。

VALUES(6)以从 1 到 59 的整数表示的一个小时中的分钟时间。

VALUES(7)以从 0 到 60 的整数表示的一分钟中的秒数。

VALUES(8)位于范围 0 至 999 中的毫秒数。

date_and_time 使用示例:

demo% cat dtm.f

integer date_time(8)

character*10 b(3)

call date_and_time(b(1), b(2), b(3), date_time)

print *,’date_time array values:’

print *,’year=’,date_time(1)

print *,’month_of_year=’,date_time(2)

print *,’day_of_month=’,date_time(3)

print *,’time difference in minutes=’,date_time(4)

print *,’hour of day=’,date_time(5)

print *,’minutes of hour=’,date_time(6)

print *,’seconds of minute=’,date_time(7)

print *,’milliseconds of second=’,date_time(8)

print *, ’DATE=’,b(1)

print *, ’TIME=’,b(2)

print *, ’ZONE=’,b(3)

end

2000 年 2 月 16 日在美国加利福尼亚的一台计算机上运行该例程时,输出结果如下所示:

date_time array values:

year= 2000

month_of_year= 2

day_of_month= 16

time difference in minutes= -420

hour of day= 11

minutes of hour= 49

seconds of minute= 29

milliseconds of second= 236

DATE=20000216

TIME=114929.236

ZONE=-0700

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值