Class dc_date
In: dc_date.f90

Methods

TimeNow  

Included Modules

dc_date_types dc_types dc_present dc_string

Public Instance methods

Function :
result :character(STRING)
fmt :character(*), intent(in), optional

現在時刻を返す

現在時刻を文字型変数として返します。 デフォルトでは JIS X 0301 の完全表記 の文字列を返します。 (例: 2005-08-05T21:48:37+09:00)。

[Source]

  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

[Validate]