public class hiTime extends Object
時間/時刻表示やタイマースケジュールなどの時間に関するユーティリティ―メソッド群です
| コンストラクタと説明 | 
|---|
| hiTime() | 
| 修飾子とタイプ | メソッドと説明 | 
|---|---|
| static TimerTask | asTimerTask(hiU.RunnableEx<Exception> func_)ラムダ式を実行するTimerTaskを得る | 
| static long | currentMilliSec()ミリ秒単位の現システム時刻を得る. | 
| static String | currentTime()現時刻を表す文字列を得る. | 
| static String | currentTime(String format_)現時刻を表す文字列を得る. | 
| static String | dispTime(long millisec_)longで得たシステムクロックを日時表示にする. | 
| static String | dispTime(String format_,
        long millisec_)longで得たシステムクロックを日時表示にする. | 
| static Timer | doAfter(hiU.RunnableEx<Exception> func_,
       long millisec_)指定ミリ秒後に指定ラムダ式を実行する
 
   // 2秒後に実行
   Timer _timer= hiU.doAfter(()->{ps.println(hiTime.currentTime());},2000);
   // .... | 
| static TimerTask | doAfter(Timer timer_,
       hiU.RunnableEx<Exception> func_,
       long millisec_)指定タイマーで指定ミリ秒後に指定ラムダ式を実行する | 
| static Timer | everyDay(hiU.RunnableEx<Exception> func_,
        int hour_,
        int minute_,
        int second_)毎日指定時刻に実行(ラムダ式). | 
| static TimerTask | everyDay(Timer timer_,
        hiU.RunnableEx<Exception> func_,
        int hour_,
        int minute_,
        int second_)指定タイマーに毎日指定時刻に実行する動作をラムダ式で設定する. | 
| static Timer | everyDay(TimerTask task_,
        int hour_,
        int minute_,
        int second_)毎日指定時刻に実行するタスクを設定する. | 
| static TimerTask | everyDay(Timer timer_,
        TimerTask task_,
        int hour_,
        int minute_,
        int second_)指定タイマーに毎日指定時刻に実行するタスクを設定する. | 
| static Timer | everyHour(hiU.RunnableEx<Exception> func_,
         int minute_,
         int second_)毎時指定分に実行(ラムダ式). | 
| static TimerTask | everyHour(Timer timer_,
         hiU.RunnableEx<Exception> func_,
         int minute_,
         int second_)指定タイマーに毎時指定分に実行する動作をラムダ式で設定する. | 
| static Timer | everyHour(TimerTask task_,
         int minute_,
         int second_)毎時指定分に実行するタスクを設定する. | 
| static TimerTask | everyHour(Timer timer_,
         TimerTask task_,
         int minute_,
         int second_)指定タイマーに毎時指定分に実行するタスクを設定する. | 
| static Timer | everyMinute(hiU.RunnableEx<Exception> func_,
           int second_)毎分指定秒に実行(ラムダ式). | 
| static TimerTask | everyMinute(Timer timer_,
           hiU.RunnableEx<Exception> func_,
           int second_)指定タイマーに毎時分定秒に実行する動作をラムダ式で設定する. | 
| static Timer | everyMinute(TimerTask task_,
           int second_)毎時分定秒に実行するタスクを設定する. | 
| static TimerTask | everyMinute(Timer timer_,
           TimerTask task_,
           int second_)指定タイマーに毎分指定秒に実行するタスクを設定する. | 
| static String | lapTime(long tt_)引数と現時刻との差を文字列で表す. | 
| static Timer | repeatAfter(hiU.RunnableEx<Exception> func_,
           long delay_,
           long period_)指定タイマーで指定ミリ秒後以降指定ミリ秒間隔で指定ラムダ式を実行する. | 
| static TimerTask | repeatAfter(Timer timer_,
           hiU.RunnableEx<Exception> func_,
           long delay_,
           long period_)指定タイマーで指定ミリ秒後以降指定ミリ秒間隔で指定ラムダ式を実行する | 
| static Exception | sleep(int milisec_)指定ミリ秒Exception無しにスリープする. | 
| static String | timeDiff(long t0_,
        long t_)ミリ秒の差を文字列化. | 
public static String currentTime()
忘れやすい単純手続きをまとめたものです
次の処理
   System.out.println("cur="+hiTime.currentTime());
は
   //import java.text.DateFormat;
   SimpleDateFormat dateForm 
       = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
   System.out.println("cur="+dateForm.format(new Date()));
と同等です。
現時刻ではなくlongによる時刻情報を表示したい場合
hiTime.dispTime(long)を使用してください。
currentTime(), 
currentTime(String), 
currentMilliSec(), 
lapTime(long), 
timeDiff(long,long), 
dispTime(long), 
dispTime(String,long)public static String currentTime(String format_)
忘れやすい単純手続きをまとめたものです
次の処理
   System.out.println("cur="+hiTime.currentTime("yyyyMMdd_HHmmss"));
は
   //import java.text.DateFormat;
   SimpleDateFormat dateForm 
       = new SimpleDateFormat("yyyyMMdd_HHmmss");
   System.out.println("cur="+dateForm.format(new Date()));
と同等です
現時刻ではなくlongによる時刻情報を表示したい場合
hiTime.dispTime(String,long)を使用してください。
表示桁数は基本的には、フォーマット文字の桁数と同じになります。 フォーマットこれらの文字以外はそのまま出力されます。 フォーマット文字と競合する文字を入れたい場合はシングルクオートで囲みます。 シングルクオートを出したい場合は2個連続して書きます。
次のフォーマット文字があります。
| 指定文字 | 意味 | 例と注意書き | 
| y(小文字) | 年 | 4桁指定すると4桁表示されます。2桁指定すると下桁が表示されます。 yyyy⇒2001 yy⇒01 | 
| M(大文字) | 月 | 2桁表示すると数字で表示されます。1月は01となります。1桁指定の場合はゼロサプレスされ1月なら1,10月なら 10となります。3桁以上を指定するとJulなどの月名表示となります。 | 
| d(小文字) | 日 | 2桁指定すると1桁値は0が付加されます。1日なら01。1桁指定の場合はゼロサプレスされ、1日は1,10日は10と表示されます。 | 
| H(大文字) | 時(0~23) | 2桁指定すると1桁値は0が付加されます。1時なら01。1桁指定の場合はゼロサプレスされ、1時なら1,10時なら 10となります。 | 
| m(小文字) | 分 | 2桁指定すると1桁値は0が付加されます。1分なら01。1桁指定の場合はゼロサプレスされ、1分なら1,10分なら 10となります。 | 
| s(小文字) | 秒 | 2桁指定すると1桁値は0が付加されます。1秒なら01。1桁指定の場合はゼロサプレスされ、1秒なら1,10秒なら 10となります。 | 
| SSS(大文字) | ミリ秒 | 間違いを防ぐため必ず3桁指定してください。 | 
| E(大文字) | 曜日 | 曜日名を表示します。表示はロケールによって異なります。 | 
| a(小文字) | 午前/午後 | 午前/午後またはAM/PMが表示されます。表示はロケールによって異なります。 | 
| K(大文字) | 0~11時 | 午前または午後の0時から11時の表示となります。 | 
| z(小文字) | タイムゾーン名 | 3桁以内だと省略名(JSTなど)が出ます。3桁を超えると省略無しの名前がでます。 省略無しの名前はロケールによって表示法が異なります | 
| Z(大文字) | タイムゾーン時差 | UTC(Universal Time, Coordinated :協定世界時)との時差が出ます。日本だと+0900と表示されます。なおUTCとGMTは ほぼ同じです。 | 
| 以下の使用は推奨しません | ||
| k(小文字) | 24,1~23時 | 12時から1時を経て23時の表示となります。3日24時は3日0時と同じであり 3日23時の後すなわち4日0時ではありません。 | 
| h(小文字) | 12,1~11時 | 午前または午後の12時から1時を経て11時の表示となります。午前12時は正午では なく午前0時の事です。 | 
| w(小文字) | 年内の週番号 | 最初の週は1となります。土曜から日曜に変わるところでカウントアップされます | 
| W(大文字) | 月内の週番号 | 最初の週は1となります。土曜から日曜に変わるところでカウントアップされます | 
| D(大文字) | 年内の日番号 | 最初の日は1です。 | 
| F(大文字) | 月内の7日カウント | 月内で7日単位でのカウントです。最初は1です。Wと異なり土日でのカウントアップとはなりません。 | 
| G(大文字) | 紀元 | ADまたはBCが出ます。 | 
format_ - 時刻フォーマットcurrentTime(), 
currentTime(String), 
currentMilliSec(), 
lapTime(long), 
timeDiff(long,long), 
dispTime(long), 
dispTime(String,long)public static long currentMilliSec()
これは
  System.currentTimeMillis()
と同等です。
currentTime(), 
currentTime(String), 
currentMilliSec(), 
lapTime(long), 
timeDiff(long,long), 
dispTime(long), 
dispTime(String,long)public static String lapTime(long tt_)
フォーマットは以下の何れかが採用されます。
時間 形式 補足 60秒以内 s.SSS sは秒、SSSはミリ秒 60分以内 m.ss.SSS mは分,ssは秒、SSSはミリ秒 60分以上 t.mm.ss.SSS tは時間,mmは分,ssは秒,SSSはミリ秒 
何れの場合も先頭の値は0サプレスされ、2番目以降は桁数分の0フィルが行われます。
次のようなコードで処理の所要時間を示すことができます。
  long t0= hiTime.currentMilliSec();
  // なんだかんだ
  hiU.err.println("use "+hiU.lapTime(t0));
tt_ - 時刻currentTime(), 
currentTime(String), 
currentMilliSec(), 
lapTime(long), 
timeDiff(long,long), 
dispTime(long), 
dispTime(String,long)public static String timeDiff(long t0_, long t_)
フォーマットは以下の何れかが採用されます。
時間 形式 補足 60秒以内 s.SSS sは秒、SSSはミリ秒 60分以内 m:ss.SSS mは分,ssは秒、SSSはミリ秒 60分以上 t:mm:ss.SSS tは時間,mmは分,ssは秒,SSSはミリ秒 
何れの場合も先頭の値は0サプレスされ、2番目以降は桁数分の0フィルが行われます。
t0_ - スタート時刻t_ - 終了時刻currentTime(), 
currentTime(String), 
currentMilliSec(), 
lapTime(long), 
timeDiff(long,long), 
dispTime(long), 
dispTime(String,long)public static String dispTime(long millisec_)
忘れやすい単純手続きをまとめたものです
次の処理
   long t0= hiTime.currentMilliSec();
   System.out.println("cur="+hiTime.dispTime(t0));
は
   //import java.text.DateFormat;
   long t0= hiTime.currentMilliSec();
   SimpleDateFormat dateForm 
       = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
   System.out.println("cur="+dateForm.format(new Date()t0));
と同等です
文字列からクロック(long)を得るメソッドは用意してありません。 次の作業を行ってください。
   //import java.text.DateFormat;
   String           dateText="2009/11/21 8:34:21";
   SimpleDateFormat dateForm
      = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
   try{
      Date date= dateForm.parse(dateText);
      long time= date.getTime();
      }
   catch(Exception ex){}
標準の作業は面倒なので、メソッド追加は検討中です。
millisec_ - システムクロック(ミリ秒)currentTime(), 
currentTime(String), 
currentMilliSec(), 
lapTime(long), 
timeDiff(long,long), 
dispTime(long), 
dispTime(String,long)public static String dispTime(String format_, long millisec_)
次の処理
   long t0= hiTime.currentMilliSec();
   System.out.println("cur="+hiTime.dispTime("yyyyMMdd_HHmmss",t0));
は
   //import java.text.DateFormat;
   long t0= hiTime.currentMilliSec();
   SimpleDateFormat dateForm 
       = new SimpleDateFormat("yyyyMMdd_HHmmss");
   System.out.println("cur="+dateForm.format(new Date(t0)));
と同等です
format_ - フォーマットmillisec_ - システムクロック(ミリ秒)currentTime(), 
currentTime(String), 
currentMilliSec(), 
lapTime(long), 
timeDiff(long,long), 
dispTime(long), 
dispTime(String,long)public static TimerTask asTimerTask(hiU.RunnableEx<Exception> func_)
func_ - ラムダ式public static Timer everyDay(hiU.RunnableEx<Exception> func_, int hour_, int minute_, int second_)
毎日指定時刻に指定のラムダ式を実行します。
キャンセルするには戻り値のTimerのcancelを呼びます。
   // 毎日3時52分15秒に時刻を印字する
   Timer _timer= hiU.everyDay(()->{ps.println(hiTime.currentTime());},3,52,15);
   // ....
   _timer.cancel(); // スケジュールをキャンセルしタイマを無効にする
func_ - ラムダ式hour_ - 時minute_ - 分second_ - 秒public static TimerTask everyDay(Timer timer_, hiU.RunnableEx<Exception> func_, int hour_, int minute_, int second_)
timer_ - タイマーfunc_ - ラムダ式hour_ - 時minute_ - 分second_ - 秒public static Timer everyDay(TimerTask task_, int hour_, int minute_, int second_)
task_ - 実行するタスクhour_ - 時minute_ - 分second_ - 秒public static TimerTask everyDay(Timer timer_, TimerTask task_, int hour_, int minute_, int second_)
timer_ - タイマーtask_ - 実行するタスクhour_ - 時minute_ - 分second_ - 秒public static Timer everyHour(hiU.RunnableEx<Exception> func_, int minute_, int second_)
毎時、指定分秒に指定のラムダ式を実行します。
キャンセルするには戻り値のTimerのcancelを呼びます。
   // 毎時52分15秒に時刻を印字する
   Timer _timer= hiU.everyHour(()->{ps.println(hiTime.currentTime());},52,15);
   // ....
   _timer.cancel(); // スケジュールをキャンセルしタイマを無効にする
func_ - ラムダ式minute_ - 分second_ - 秒public static TimerTask everyHour(Timer timer_, hiU.RunnableEx<Exception> func_, int minute_, int second_)
timer_ - タイマーfunc_ - ラムダ式minute_ - 分second_ - 秒public static Timer everyHour(TimerTask task_, int minute_, int second_)
task_ - 実行するタスクminute_ - 分second_ - 秒public static TimerTask everyHour(Timer timer_, TimerTask task_, int minute_, int second_)
timer_ - タイマーtask_ - 実行するタスクminute_ - 分second_ - 秒public static Timer everyMinute(hiU.RunnableEx<Exception> func_, int second_)
毎分、指定秒に指定のラムダ式を実行します。
キャンセルするには戻り値のTimerのcancelを呼びます。
   // 毎分15秒に時刻を印字する
   Timer _timer= hiU.everyMinute(()->{ps.println(hiTime.currentTime());},15);
   // ....
   _timer.cancel(); // スケジュールをキャンセルしタイマを無効にする
func_ - ラムダ式second_ - 秒public static TimerTask everyMinute(Timer timer_, hiU.RunnableEx<Exception> func_, int second_)
timer_ - タイマーfunc_ - ラムダ式second_ - 秒public static Timer everyMinute(TimerTask task_, int second_)
task_ - 実行するタスクsecond_ - 秒public static TimerTask everyMinute(Timer timer_, TimerTask task_, int second_)
timer_ - タイマーtask_ - 実行するタスクsecond_ - 秒public static Timer doAfter(hiU.RunnableEx<Exception> func_, long millisec_)
   // 2秒後に実行
   Timer _timer= hiU.doAfter(()->{ps.println(hiTime.currentTime());},2000);
   // ....
   _timer.cancel(); // スケジュールをキャンセルしタイマを無効にする
func_ - 式millisec_ - 指定時間後に実行public static TimerTask doAfter(Timer timer_, hiU.RunnableEx<Exception> func_, long millisec_)
timer_ - タイマーfunc_ - 式millisec_ - 指定時間後に実行public static TimerTask repeatAfter(Timer timer_, hiU.RunnableEx<Exception> func_, long delay_, long period_)
timer_ - タイマーfunc_ - 式delay_ - 指定時間後に実行period_ - 実行間隔public static Timer repeatAfter(hiU.RunnableEx<Exception> func_, long delay_, long period_)
   hiTime.repeatAfter(()->{doSomethng();},1000,500);
func_ - 式delay_ - 指定時間後に実行period_ - 実行間隔public static Exception sleep(int milisec_)
milisec_ - スリープするミリ秒