現在時刻を文字型変数として返します。 デフォルトでは 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