現在時刻を文字型変数として返します。 デフォルトでは JIS X 0301 の完全表記
の文字列を返します。 (例: 2005-08-05T21:48:37+09:00)。
function DCTimeNow(fmt) result(result)
!
!== 現在時刻を返す
!
! 現在時刻を文字型変数として返します。
! デフォルトでは JIS X 0301 の完全表記
! の文字列を返します。 (例: 2005-08-05T21:48:37+09:00)。
!
!
implicit none
character(*), intent(in), optional :: fmt
character(STRING) :: result
integer :: values(1:8)
character(5) :: zone
character(6) :: zone_fmt
character(4) :: year
character(2) :: month, day, hour, min, sec
continue
call date_and_time(zone=zone, values=values)
zone_fmt = zone(1:3) // ":" // zone(4:5)
write(year, "(i4.4)") values(1)
write(month, "(i2.2)") values(2)
write(day, "(i2.2)") values(3)
write(hour, "(i2.2)") values(5)
write(min, "(i2.2)") values(6)
write(sec, "(i2.2)") values(7)
if (present_and_not_empty(fmt)) then
result = CPrintf('%cT%c%c', c1= year // '-' // month // '-' // day, c2= hour // ':' // min // ':' // sec, c3= trim(zone_fmt) )
else
result = CPrintf('%cT%c%c', c1= year // '-' // month // '-' // day, c2= hour // ':' // min // ':' // sec, c3= trim(zone_fmt) )
end if
end function DCTimeNow