Chat&Messenger - テレビ会議も高機能 -
IP Messenger 互換。チャット、メッセンジャー、テレビ会議、スケジュール、文書共有、キャプチャを統合したフリーソフト

Java 2つの日付の差を求める

Java 2つの日付の差を求める

Java で、2 つの日付の差を求めるサンプルプログラムを紹介します。
サンプルプログラムでは比較対象の日付が、文字列( yyyy/MM/dd )の場合、java.util.Date の場合に対応しています。

日付の差を求める計算方法は以下となります。
  1. 最初に 2 つの日付を long 値に変換します。
    ※この long 値は 1970 年 1 月 1 日 00:00:00 GMT からの経過ミリ秒数となります。
  2. 次にその差を求めます。
  3. 上記の計算で出た数量を 1 日の時間で割ることで日付の差を求めることができます。
    ※1 日 (24 時間) は、86,400,000 ミリ秒です。

サンプルソース

実行

◆実行例
public static void main(String[] args) {
    int ret = differenceDays("2008/6/2","2008/6/1");
    System.out.println("結果1 = "+ret);
    
    ret = differenceDays("2008/6/1","2008/6/3");
    System.out.println("結果2 = "+ret);

    // 5月の日数は31日
    ret = differenceDays("2008/6/1","2008/5/1");
    System.out.println("結果3 = "+ret);

    // 6月の日数は30日
    ret = differenceDays("2008/7/1","2008/6/1");
    System.out.println("結果4 = "+ret);

    // 2008年は閏年のため2月の月末日付は29日
    ret = differenceDays("2008/3/1","2008/2/28");
    System.out.println("結果5 = "+ret);
}
◆実行結果
結果1 = 1
結果2 = -2
結果3 = 31
結果4 = 30
結果5 = 2

2つの日付の差を求める方法は比較的簡単ですが、月数の差を求める場合は少し難易度があがります。参考までに以下ご覧ください。
Java 2つの日付の月数の差を求める

このサンプルプログラムは Chat&Messenger の「カレンダー・スケジュール管理機能」で実際に利用しています。

ページトップへ
更新履歴 - 更新履歴 2016 - 2017
応用編 - 社内で検証済みバージョンでバージョンアップを通知
ダウンロード - ダウンロード詳細
応用編 - ショートカットキー一覧
その他 - プレミアムエディション
ダウンロード - CAMServer のダウンロード
更新履歴 - 更新履歴 2015
その他 - IP Messenger 互換について
インストール / Verup - インストール方法
インストール / Verup - バージョンアップ方法
更新履歴 - 更新履歴 2014
更新履歴 - 更新履歴 2013
Thanks Links・リンク集 - おすすめフリーソフトまとめ
更新履歴 - 更新履歴 2011 - 2012
更新履歴 - 更新履歴 2010
更新履歴 - 更新履歴 2009
インストール / Verup - インスートール方法 Mac OSX
その他 - 会社案内
CAMServer - CAMServer 概要
CAMServer - CAMServer の導入方法
CAMServer - ライセンスのご購入
インストール / Verup - バージョンアップとリリースポリシー
CAMServer - 文書・ファイル共有
ダウンロード - 過去のバージョンのダウンロード
CAMServer - 外部ユーザ取得・ルータ超え
Thanks Links・リンク集 - Thanks Links
インストール / Verup - アンインストール方法
CAMServer - オフライン時の Email 転送
応用編 - バックアップ設定
CAMServer - クライアント利用制限
CAMServer - メッセージログのサーバ集中管理
CAMServer - CAMServer のバージョンアップ
テレビ会議 / 音声通話 - テレビ会議・音声通話
CAMServer - CAMServer を Windows サービスとして起動
応用編 - パケット追跡について
テレビ会議 / 音声通話 - ヘッドセット・カメラの準備
テレビ会議 / 音声通話 - ヘッドセット・カメラの推奨商品
その他 - よくある質問
更新履歴 - 更新履歴 2008
Thanks Links・リンク集 - 相互リンク募集
CAMServer - よくある質問 CAMServer 編
メッセンジャー / チャット - 使い方、使用方法
応用編 - 便利な使い方(Tips)
メッセンジャー / チャット - 起動及び初期設定方法
メッセンジャー / チャット - メッセンジャー
メッセンジャー / チャット - メッセージ内のアイコン説明
メッセンジャー / チャット - チャット
メッセンジャー / チャット - ログ参照
メッセンジャー / チャット - ファイルやフォルダの送信・受信
メッセンジャー / チャット - アプリケーションの環境設定
メッセンジャー / チャット - ソート設定と優先順位設定
メッセンジャー / チャット - メッセージの保管
メッセンジャー / チャット - 不在モード
スケジュール / カレンダー - カレンダー
スケジュール / カレンダー - スケジュール共有
メッセンジャー / チャット - キャプチャ
メッセンジャー / チャット - 付箋
スケジュール / カレンダー - ToDo
スケジュール / カレンダー - 会議室・施設予約
応用編 - config / logs フォルダについて
CAMServer - 特定商取引に関する法律に基づく表記
更新履歴 - 更新履歴 2007
更新履歴 - 更新履歴 2006
Java システム系 - Java 外部コマンドを実行し3つの結果を取得
Java 文字列 - Java LPAD、RPADで整形
Java 日付・時刻 - Java 2つの日付の差を求める
Java システム系 - Java システムプロパティを見やすく出力
Java システム系 - Java メモリー使用量を取得
Java 文字列 - Java ファイル名から拡張子を取り除く
Java 文字列 - Java ファイル名から拡張子を取得
Java ファイル・I/O - Java ディレクトリ内のファイル一覧を表示
Java ファイル・I/O - Java XMLEncoderでオブジェクトを保存
Java 日付・時刻 - Java 2つの日付の月数の差を求める
Java 日付・時刻 - Java 日付・時刻の計算 加算・減算が簡単に
Web関連 - 10の翻訳エンジンを比較できるサイト 翻訳くらべ
Web関連 - Excelの表からHTMLテーブルタグ一発作成
Web関連 - IETester - 複数のIEバージョンの動作確認を行える便利なソフト
Java ファイル・I/O - Java 再帰的にファイルを検索
Java 特集 - Java タスクトレイのアイコンを表示・点滅
Java ファイル・I/O - Java ファイルコピー(バッファサイズを変更)
Java ファイル・I/O - Java ファイルコピー(簡単・高速)
Java 特集 - Java ログフィルタでHTTPを解析
Java 特集 - Java リフレクション が簡単に
Java 日付・時刻 - Java 日付の妥当性・存在チェック
Java 日付・時刻 - Java 月末日付を取得する
Java 日付・時刻 - Java 現在(今日)の曜日を求める
Java 日付・時刻 - Java 日付文字列をDate型へ変換
Java 日付・時刻 - Java あらゆる日付・時刻文字列をDate、Calendar型へ
Java 文字列 - Java 文字列内のURLをリンクに変換
Java ネットワーク - Java 実行しているマシンのホスト名を取得
Java ネットワーク - Java IPアドレスからホスト名を取得
Java Swing - Java システムアイコンを抽出
Java Swing - Java クリップボードへコピー
Thanks Links・リンク集 - リンク集・その他お勧め

Java 2つの日付の月数の差を求める

Java 2つの日付の月数の差を求める

Java で、2つの日付の月数の差を求めるサンプルプログラムを紹介します。
サンプルプログラムでは比較対象の日付が、文字列( yyyy/MM/dd )の場合、java.util.Date の場合に対応しています。

月数の差を求める計算方法は以下となります。
  1. 最初に 2つの日付を 1日にします。
    ※ Calendar.set(Calendar.DATE, 1) を利用します。
  2. 次に 2 つの日付を一ヶ月単位で繰返し比較して行きます。
    ※ Calendar.add(Calendar.MONTH, 1または-1) を利用し、一ヶ月づつ月数を加算・減算していきます。
  3. 繰返し比較した回数をカウントします。

サンプルソース

実行

◆実行例
public static void main(String[] args) {
    int ret = differenceMonth("2008/6/30","2008/6/1");
    System.out.println("結果1 = "+ret);
    
    ret = differenceMonth("2008/7/1","2008/6/3");
    System.out.println("結果2 = "+ret);

    ret = differenceMonth("2008/12/20","2008/6/1");
    System.out.println("結果3 = "+ret);

    ret = differenceMonth("2010/6/20","2008/6/1");
    System.out.println("結果4 = "+ret);

    ret = differenceMonth("2008/6/1","2008/7/1");
    System.out.println("結果5 = "+ret);

    ret = differenceMonth("2008/7/1","2009/7/1");
    System.out.println("結果6 = "+ret);
}
◆実行結果
結果1 = 0
結果2 = 1
結果3 = 6
結果4 = 24
結果5 = -1
結果6 = -12

このサンプルプログラムは Chat&Messenger の「カレンダー・スケジュール管理機能」で実際に利用しています。


ページトップへ
更新履歴 - 更新履歴 2016 - 2017
応用編 - 社内で検証済みバージョンでバージョンアップを通知
ダウンロード - ダウンロード詳細
応用編 - ショートカットキー一覧
その他 - プレミアムエディション
ダウンロード - CAMServer のダウンロード
更新履歴 - 更新履歴 2015
その他 - IP Messenger 互換について
インストール / Verup - インストール方法
インストール / Verup - バージョンアップ方法
更新履歴 - 更新履歴 2014
更新履歴 - 更新履歴 2013
Thanks Links・リンク集 - おすすめフリーソフトまとめ
更新履歴 - 更新履歴 2011 - 2012
更新履歴 - 更新履歴 2010
更新履歴 - 更新履歴 2009
インストール / Verup - インスートール方法 Mac OSX
その他 - 会社案内
CAMServer - CAMServer 概要
CAMServer - CAMServer の導入方法
CAMServer - ライセンスのご購入
インストール / Verup - バージョンアップとリリースポリシー
CAMServer - 文書・ファイル共有
ダウンロード - 過去のバージョンのダウンロード
CAMServer - 外部ユーザ取得・ルータ超え
Thanks Links・リンク集 - Thanks Links
インストール / Verup - アンインストール方法
CAMServer - オフライン時の Email 転送
応用編 - バックアップ設定
CAMServer - クライアント利用制限
CAMServer - メッセージログのサーバ集中管理
CAMServer - CAMServer のバージョンアップ
テレビ会議 / 音声通話 - テレビ会議・音声通話
CAMServer - CAMServer を Windows サービスとして起動
応用編 - パケット追跡について
テレビ会議 / 音声通話 - ヘッドセット・カメラの準備
テレビ会議 / 音声通話 - ヘッドセット・カメラの推奨商品
その他 - よくある質問
更新履歴 - 更新履歴 2008
Thanks Links・リンク集 - 相互リンク募集
CAMServer - よくある質問 CAMServer 編
メッセンジャー / チャット - 使い方、使用方法
応用編 - 便利な使い方(Tips)
メッセンジャー / チャット - 起動及び初期設定方法
メッセンジャー / チャット - メッセンジャー
メッセンジャー / チャット - メッセージ内のアイコン説明
メッセンジャー / チャット - チャット
メッセンジャー / チャット - ログ参照
メッセンジャー / チャット - ファイルやフォルダの送信・受信
メッセンジャー / チャット - アプリケーションの環境設定
メッセンジャー / チャット - ソート設定と優先順位設定
メッセンジャー / チャット - メッセージの保管
メッセンジャー / チャット - 不在モード
スケジュール / カレンダー - カレンダー
スケジュール / カレンダー - スケジュール共有
メッセンジャー / チャット - キャプチャ
メッセンジャー / チャット - 付箋
スケジュール / カレンダー - ToDo
スケジュール / カレンダー - 会議室・施設予約
応用編 - config / logs フォルダについて
CAMServer - 特定商取引に関する法律に基づく表記
更新履歴 - 更新履歴 2007
更新履歴 - 更新履歴 2006
Java システム系 - Java 外部コマンドを実行し3つの結果を取得
Java 文字列 - Java LPAD、RPADで整形
Java 日付・時刻 - Java 2つの日付の差を求める
Java システム系 - Java システムプロパティを見やすく出力
Java システム系 - Java メモリー使用量を取得
Java 文字列 - Java ファイル名から拡張子を取り除く
Java 文字列 - Java ファイル名から拡張子を取得
Java ファイル・I/O - Java ディレクトリ内のファイル一覧を表示
Java ファイル・I/O - Java XMLEncoderでオブジェクトを保存
Java 日付・時刻 - Java 2つの日付の月数の差を求める
Java 日付・時刻 - Java 日付・時刻の計算 加算・減算が簡単に
Web関連 - 10の翻訳エンジンを比較できるサイト 翻訳くらべ
Web関連 - Excelの表からHTMLテーブルタグ一発作成
Web関連 - IETester - 複数のIEバージョンの動作確認を行える便利なソフト
Java ファイル・I/O - Java 再帰的にファイルを検索
Java 特集 - Java タスクトレイのアイコンを表示・点滅
Java ファイル・I/O - Java ファイルコピー(バッファサイズを変更)
Java ファイル・I/O - Java ファイルコピー(簡単・高速)
Java 特集 - Java ログフィルタでHTTPを解析
Java 特集 - Java リフレクション が簡単に
Java 日付・時刻 - Java 日付の妥当性・存在チェック
Java 日付・時刻 - Java 月末日付を取得する
Java 日付・時刻 - Java 現在(今日)の曜日を求める
Java 日付・時刻 - Java 日付文字列をDate型へ変換
Java 日付・時刻 - Java あらゆる日付・時刻文字列をDate、Calendar型へ
Java 文字列 - Java 文字列内のURLをリンクに変換
Java ネットワーク - Java 実行しているマシンのホスト名を取得
Java ネットワーク - Java IPアドレスからホスト名を取得
Java Swing - Java システムアイコンを抽出
Java Swing - Java クリップボードへコピー
Thanks Links・リンク集 - リンク集・その他お勧め

Java 日付・時刻の計算 加算・減算が簡単に

Java 日付・時刻の計算 加算・減算が簡単に

 Java で簡単に日付・時刻の加算・減算を計算するサンプルプログラムを紹介します。
サンプルプログラムの特徴は以下となります。

  • 現在、または任意の日付・時刻から指定の時間量を加算・減算した結果を返します。
  • プラスの数値を指定した場合時間を進め、マイナスの場合は戻します。
    たとえば、現在の日付時刻から 10 日前を計算する場合は以下となります。
    Calendar cal = addMonth(-10);
  • 年、月、日、時間、分、秒、ミリ秒の各時間フィールドに対し、任意の時間量を設定できます。
    また、指定の時間から相対的に計算する場合は、引数にCalendarクラスを渡す。
    たとえば、以下では指定のCalendarインスタンスから1年進めることになります。
    Calendar cal = add("指定のCalendar",1,0,0,0,0,0,0);
  • 各時間フィールドの値がその範囲を超えた場合、次の大きい時間フィールドが増分または減分されます。
    たとえば、以下では現在時刻から1時間と5分進めることになります。
    Calendar cal = addMinute(65);

メソッドの概要


メソッドの概要
static java.util.Calendar add(Calendar cal, int addYera, int addMonth, int addDate, int addHour, int addMinute, int addSecond, int addMillisecond)
現在、または任意の日付・時刻から指定の時間量を加算・減算した結果を返します。
static java.util.Calendar addYera(int addYera)
現在の日付・時刻から指定の【年数】を加算・減算した結果を返します。
static java.util.Calendar addMonth(int addMonth)
現在の日付・時刻から指定の【月数】を加算・減算した結果を返します。
static java.util.Calendar addDate(int addDate)
現在の日付・時刻から指定の【日数】を加算・減算した結果を返します。
static java.util.Calendar addHour(int addHour)
現在の日付・時刻から指定の【時間】を加算・減算した結果を返します。
static java.util.Calendar addMinute(int addMinute)
現在の日付・時刻から指定の【分】を加算・減算した結果を返します。
static java.util.Calendar addSecond(int addSecond)
現在の日付・時刻から指定の【秒】を加算・減算した結果を返します。

サンプルプログラム


実行

 サンプルプログラムでは、リターン値として計算後の日付を保持する java.util.Calendar オブジェクトを取得できますので、java.util.Calendar#getTime()メソッドにより、java.util.Dateに変換し java.text.SimpleDateFormat により日付文字列に変換しています。

◆実行例
public static void main(String[] args) {

SimpleDateFormat f = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
System.out.println("現在   の日付・時刻 = "+ f.format(add(null,0,0,0,0,0,0,0).getTime()));
System.out.println("1年後  の日付・時刻 = "+ f.format(addYera(1).getTime()));
System.out.println("1ヶ月前 の日付・時刻 = "+ f.format(addMonth(-1).getTime()));
System.out.println("3時間後 の日付・時刻 = "+ f.format(addHour(3).getTime()));
System.out.println("30時間前の日付・時刻 = "+ f.format(addHour(-30).getTime()));
System.out.println("40分後 の日付・時刻 = "+ f.format(addMinute(40).getTime()));
System.out.println("80秒後 の日付・時刻 = "+ f.format(addSecond(80).getTime()));
System.out.println("1ヶ月前から、4日後の日付・時刻 = "+ f.format(add(null,0,-1,4,0,0,0,0).getTime()));

}
◆実行結果
現在の日付時刻は 2008/03/25 00:00:00 とします。
現在   の日付・時刻 = 2008/03/25 00:00:00
1年後  の日付・時刻 = 2009/03/25 00:00:00
1ヶ月前 の日付・時刻 = 2008/02/25 00:00:00
3時間後 の日付・時刻 = 2008/03/25 03:00:00
30時間前の日付・時刻 = 2008/03/23 18:00:00
40分後 の日付・時刻 = 2008/03/25 00:40:00
80秒後 の日付・時刻 = 2008/03/25 00:01:20
1ヶ月前から、4日後の日付・時刻 = 2008/02/29 00:00:00
※2008年は閏年のため2月の月末日付は29日となります。

このサンプルプログラムは Chat&Messenger の「カレンダー・スケジュール管理機能」で実際に利用しています。


ページトップへ
更新履歴 - 更新履歴 2016 - 2017
応用編 - 社内で検証済みバージョンでバージョンアップを通知
ダウンロード - ダウンロード詳細
応用編 - ショートカットキー一覧
その他 - プレミアムエディション
ダウンロード - CAMServer のダウンロード
更新履歴 - 更新履歴 2015
その他 - IP Messenger 互換について
インストール / Verup - インストール方法
インストール / Verup - バージョンアップ方法
更新履歴 - 更新履歴 2014
更新履歴 - 更新履歴 2013
Thanks Links・リンク集 - おすすめフリーソフトまとめ
更新履歴 - 更新履歴 2011 - 2012
更新履歴 - 更新履歴 2010
更新履歴 - 更新履歴 2009
インストール / Verup - インスートール方法 Mac OSX
その他 - 会社案内
CAMServer - CAMServer 概要
CAMServer - CAMServer の導入方法
CAMServer - ライセンスのご購入
インストール / Verup - バージョンアップとリリースポリシー
CAMServer - 文書・ファイル共有
ダウンロード - 過去のバージョンのダウンロード
CAMServer - 外部ユーザ取得・ルータ超え
Thanks Links・リンク集 - Thanks Links
インストール / Verup - アンインストール方法
CAMServer - オフライン時の Email 転送
応用編 - バックアップ設定
CAMServer - クライアント利用制限
CAMServer - メッセージログのサーバ集中管理
CAMServer - CAMServer のバージョンアップ
テレビ会議 / 音声通話 - テレビ会議・音声通話
CAMServer - CAMServer を Windows サービスとして起動
応用編 - パケット追跡について
テレビ会議 / 音声通話 - ヘッドセット・カメラの準備
テレビ会議 / 音声通話 - ヘッドセット・カメラの推奨商品
その他 - よくある質問
更新履歴 - 更新履歴 2008
Thanks Links・リンク集 - 相互リンク募集
CAMServer - よくある質問 CAMServer 編
メッセンジャー / チャット - 使い方、使用方法
応用編 - 便利な使い方(Tips)
メッセンジャー / チャット - 起動及び初期設定方法
メッセンジャー / チャット - メッセンジャー
メッセンジャー / チャット - メッセージ内のアイコン説明
メッセンジャー / チャット - チャット
メッセンジャー / チャット - ログ参照
メッセンジャー / チャット - ファイルやフォルダの送信・受信
メッセンジャー / チャット - アプリケーションの環境設定
メッセンジャー / チャット - ソート設定と優先順位設定
メッセンジャー / チャット - メッセージの保管
メッセンジャー / チャット - 不在モード
スケジュール / カレンダー - カレンダー
スケジュール / カレンダー - スケジュール共有
メッセンジャー / チャット - キャプチャ
メッセンジャー / チャット - 付箋
スケジュール / カレンダー - ToDo
スケジュール / カレンダー - 会議室・施設予約
応用編 - config / logs フォルダについて
CAMServer - 特定商取引に関する法律に基づく表記
更新履歴 - 更新履歴 2007
更新履歴 - 更新履歴 2006
Java システム系 - Java 外部コマンドを実行し3つの結果を取得
Java 文字列 - Java LPAD、RPADで整形
Java 日付・時刻 - Java 2つの日付の差を求める
Java システム系 - Java システムプロパティを見やすく出力
Java システム系 - Java メモリー使用量を取得
Java 文字列 - Java ファイル名から拡張子を取り除く
Java 文字列 - Java ファイル名から拡張子を取得
Java ファイル・I/O - Java ディレクトリ内のファイル一覧を表示
Java ファイル・I/O - Java XMLEncoderでオブジェクトを保存
Java 日付・時刻 - Java 2つの日付の月数の差を求める
Java 日付・時刻 - Java 日付・時刻の計算 加算・減算が簡単に
Web関連 - 10の翻訳エンジンを比較できるサイト 翻訳くらべ
Web関連 - Excelの表からHTMLテーブルタグ一発作成
Web関連 - IETester - 複数のIEバージョンの動作確認を行える便利なソフト
Java ファイル・I/O - Java 再帰的にファイルを検索
Java 特集 - Java タスクトレイのアイコンを表示・点滅
Java ファイル・I/O - Java ファイルコピー(バッファサイズを変更)
Java ファイル・I/O - Java ファイルコピー(簡単・高速)
Java 特集 - Java ログフィルタでHTTPを解析
Java 特集 - Java リフレクション が簡単に
Java 日付・時刻 - Java 日付の妥当性・存在チェック
Java 日付・時刻 - Java 月末日付を取得する
Java 日付・時刻 - Java 現在(今日)の曜日を求める
Java 日付・時刻 - Java 日付文字列をDate型へ変換
Java 日付・時刻 - Java あらゆる日付・時刻文字列をDate、Calendar型へ
Java 文字列 - Java 文字列内のURLをリンクに変換
Java ネットワーク - Java 実行しているマシンのホスト名を取得
Java ネットワーク - Java IPアドレスからホスト名を取得
Java Swing - Java システムアイコンを抽出
Java Swing - Java クリップボードへコピー
Thanks Links・リンク集 - リンク集・その他お勧め

Java 日付の妥当性・存在チェック

Java 日付の妥当性・存在チェック Calendar.setLenient()

Java日付の妥当性・存在チェックを行うサンプルプログラムです。
指定した日付文字列(yyyy/MM/dd or yyyy-MM-dd)がカレンダー上に存在するかどうかをチェックします。

java.text.DateFormatクラスのsetLenient()にfalseを指定すると、日付解析を厳密に行うことができます。(※DateFormatクラスは内部的にはjava.util.CalendarクラスのsetLenient()を呼び出しています。)
不正な日付や、存在しない日付でparse()メソッドを呼び出すと、ParseExceptionが発生することを利用したチェック方法となります。

サンプルプログラム

/**
 * 日付の妥当性チェックを行います。
 * 指定した日付文字列(yyyy/MM/dd or yyyy-MM-dd)が
 * カレンダーに存在するかどうかを返します。
 * @param strDate チェック対象の文字列
 * @return 存在する日付の場合true
 */
public static boolean checkDate(String strDate) {
    if (strDate == null || strDate.length() != 10) {
        throw new IllegalArgumentException(
                "引数の文字列["+ strDate +"]" +
                "は不正です。");
    }
    strDate = strDate.replace('-', '/');
    DateFormat format = DateFormat.getDateInstance();
    // 日付/時刻解析を厳密に行うかどうかを設定する。
    format.setLenient(false);
    try {
        format.parse(strDate);
        return true;
    } catch (Exception e) {
        return false;
    }
}

実行結果

◆実行例
public static void main(String[] args) {
    System.out.println(checkDate("2007-01-01"));
    System.out.println(checkDate("2007/02/31"));
    System.out.println(checkDate("aaaa/02/31"));
}
◆出力結果
true
false
false

ページトップへ
更新履歴 - 更新履歴 2016 - 2017
応用編 - 社内で検証済みバージョンでバージョンアップを通知
ダウンロード - ダウンロード詳細
応用編 - ショートカットキー一覧
その他 - プレミアムエディション
ダウンロード - CAMServer のダウンロード
更新履歴 - 更新履歴 2015
その他 - IP Messenger 互換について
インストール / Verup - インストール方法
インストール / Verup - バージョンアップ方法
更新履歴 - 更新履歴 2014
更新履歴 - 更新履歴 2013
Thanks Links・リンク集 - おすすめフリーソフトまとめ
更新履歴 - 更新履歴 2011 - 2012
更新履歴 - 更新履歴 2010
更新履歴 - 更新履歴 2009
インストール / Verup - インスートール方法 Mac OSX
その他 - 会社案内
CAMServer - CAMServer 概要
CAMServer - CAMServer の導入方法
CAMServer - ライセンスのご購入
インストール / Verup - バージョンアップとリリースポリシー
CAMServer - 文書・ファイル共有
ダウンロード - 過去のバージョンのダウンロード
CAMServer - 外部ユーザ取得・ルータ超え
Thanks Links・リンク集 - Thanks Links
インストール / Verup - アンインストール方法
CAMServer - オフライン時の Email 転送
応用編 - バックアップ設定
CAMServer - クライアント利用制限
CAMServer - メッセージログのサーバ集中管理
CAMServer - CAMServer のバージョンアップ
テレビ会議 / 音声通話 - テレビ会議・音声通話
CAMServer - CAMServer を Windows サービスとして起動
応用編 - パケット追跡について
テレビ会議 / 音声通話 - ヘッドセット・カメラの準備
テレビ会議 / 音声通話 - ヘッドセット・カメラの推奨商品
その他 - よくある質問
更新履歴 - 更新履歴 2008
Thanks Links・リンク集 - 相互リンク募集
CAMServer - よくある質問 CAMServer 編
メッセンジャー / チャット - 使い方、使用方法
応用編 - 便利な使い方(Tips)
メッセンジャー / チャット - 起動及び初期設定方法
メッセンジャー / チャット - メッセンジャー
メッセンジャー / チャット - メッセージ内のアイコン説明
メッセンジャー / チャット - チャット
メッセンジャー / チャット - ログ参照
メッセンジャー / チャット - ファイルやフォルダの送信・受信
メッセンジャー / チャット - アプリケーションの環境設定
メッセンジャー / チャット - ソート設定と優先順位設定
メッセンジャー / チャット - メッセージの保管
メッセンジャー / チャット - 不在モード
スケジュール / カレンダー - カレンダー
スケジュール / カレンダー - スケジュール共有
メッセンジャー / チャット - キャプチャ
メッセンジャー / チャット - 付箋
スケジュール / カレンダー - ToDo
スケジュール / カレンダー - 会議室・施設予約
応用編 - config / logs フォルダについて
CAMServer - 特定商取引に関する法律に基づく表記
更新履歴 - 更新履歴 2007
更新履歴 - 更新履歴 2006
Java システム系 - Java 外部コマンドを実行し3つの結果を取得
Java 文字列 - Java LPAD、RPADで整形
Java 日付・時刻 - Java 2つの日付の差を求める
Java システム系 - Java システムプロパティを見やすく出力
Java システム系 - Java メモリー使用量を取得
Java 文字列 - Java ファイル名から拡張子を取り除く
Java 文字列 - Java ファイル名から拡張子を取得
Java ファイル・I/O - Java ディレクトリ内のファイル一覧を表示
Java ファイル・I/O - Java XMLEncoderでオブジェクトを保存
Java 日付・時刻 - Java 2つの日付の月数の差を求める
Java 日付・時刻 - Java 日付・時刻の計算 加算・減算が簡単に
Web関連 - 10の翻訳エンジンを比較できるサイト 翻訳くらべ
Web関連 - Excelの表からHTMLテーブルタグ一発作成
Web関連 - IETester - 複数のIEバージョンの動作確認を行える便利なソフト
Java ファイル・I/O - Java 再帰的にファイルを検索
Java 特集 - Java タスクトレイのアイコンを表示・点滅
Java ファイル・I/O - Java ファイルコピー(バッファサイズを変更)
Java ファイル・I/O - Java ファイルコピー(簡単・高速)
Java 特集 - Java ログフィルタでHTTPを解析
Java 特集 - Java リフレクション が簡単に
Java 日付・時刻 - Java 日付の妥当性・存在チェック
Java 日付・時刻 - Java 月末日付を取得する
Java 日付・時刻 - Java 現在(今日)の曜日を求める
Java 日付・時刻 - Java 日付文字列をDate型へ変換
Java 日付・時刻 - Java あらゆる日付・時刻文字列をDate、Calendar型へ
Java 文字列 - Java 文字列内のURLをリンクに変換
Java ネットワーク - Java 実行しているマシンのホスト名を取得
Java ネットワーク - Java IPアドレスからホスト名を取得
Java Swing - Java システムアイコンを抽出
Java Swing - Java クリップボードへコピー
Thanks Links・リンク集 - リンク集・その他お勧め

Java 月末日付を取得する

Java 月末日付を取得する Calendar.getActualMaximum()

Javaで指定した日付の月末日付を取得するサンプルプログラムです。
java.util.CalendarクラスのgetActualMaximum(Calendar.DATE)月末日付を取得することができます。

サンプルプログラム

/**
 * 指定した日付文字列(yyyy/MM/dd or yyyy-MM-dd)
 * における月末日付を返します。
 * 
 * @param strDate 対象の日付文字列
 * @return 月末日付
 */
public static int getLastDay(String strDate) {
    if (strDate == null || strDate.length() != 10) {
        throw new IllegalArgumentException(
                "引数の文字列["+ strDate +"]" +
                "は不正です。");
    }
    int yyyy = Integer.parseInt(strDate.substring(0,4));
    int MM = Integer.parseInt(strDate.substring(5,7));
    int dd = Integer.parseInt(strDate.substring(8,10));
    Calendar cal = Calendar.getInstance();
    cal.set(yyyy,MM-1,dd);
    int last = cal.getActualMaximum(Calendar.DATE);
    return last;
}

実行結果

◆実行例
public static void main(String[] args) {
    System.out.println(getLastDay("2007/01/01"));
    System.out.println(getLastDay("2007/02/01"));
    System.out.println(getLastDay("2008/02/01"));
}
◆出力結果
31
28
29
※2008年は閏年のため2月の月末日付は29日となります。

ページトップへ
更新履歴 - 更新履歴 2016 - 2017
応用編 - 社内で検証済みバージョンでバージョンアップを通知
ダウンロード - ダウンロード詳細
応用編 - ショートカットキー一覧
その他 - プレミアムエディション
ダウンロード - CAMServer のダウンロード
更新履歴 - 更新履歴 2015
その他 - IP Messenger 互換について
インストール / Verup - インストール方法
インストール / Verup - バージョンアップ方法
更新履歴 - 更新履歴 2014
更新履歴 - 更新履歴 2013
Thanks Links・リンク集 - おすすめフリーソフトまとめ
更新履歴 - 更新履歴 2011 - 2012
更新履歴 - 更新履歴 2010
更新履歴 - 更新履歴 2009
インストール / Verup - インスートール方法 Mac OSX
その他 - 会社案内
CAMServer - CAMServer 概要
CAMServer - CAMServer の導入方法
CAMServer - ライセンスのご購入
インストール / Verup - バージョンアップとリリースポリシー
CAMServer - 文書・ファイル共有
ダウンロード - 過去のバージョンのダウンロード
CAMServer - 外部ユーザ取得・ルータ超え
Thanks Links・リンク集 - Thanks Links
インストール / Verup - アンインストール方法
CAMServer - オフライン時の Email 転送
応用編 - バックアップ設定
CAMServer - クライアント利用制限
CAMServer - メッセージログのサーバ集中管理
CAMServer - CAMServer のバージョンアップ
テレビ会議 / 音声通話 - テレビ会議・音声通話
CAMServer - CAMServer を Windows サービスとして起動
応用編 - パケット追跡について
テレビ会議 / 音声通話 - ヘッドセット・カメラの準備
テレビ会議 / 音声通話 - ヘッドセット・カメラの推奨商品
その他 - よくある質問
更新履歴 - 更新履歴 2008
Thanks Links・リンク集 - 相互リンク募集
CAMServer - よくある質問 CAMServer 編
メッセンジャー / チャット - 使い方、使用方法
応用編 - 便利な使い方(Tips)
メッセンジャー / チャット - 起動及び初期設定方法
メッセンジャー / チャット - メッセンジャー
メッセンジャー / チャット - メッセージ内のアイコン説明
メッセンジャー / チャット - チャット
メッセンジャー / チャット - ログ参照
メッセンジャー / チャット - ファイルやフォルダの送信・受信
メッセンジャー / チャット - アプリケーションの環境設定
メッセンジャー / チャット - ソート設定と優先順位設定
メッセンジャー / チャット - メッセージの保管
メッセンジャー / チャット - 不在モード
スケジュール / カレンダー - カレンダー
スケジュール / カレンダー - スケジュール共有
メッセンジャー / チャット - キャプチャ
メッセンジャー / チャット - 付箋
スケジュール / カレンダー - ToDo
スケジュール / カレンダー - 会議室・施設予約
応用編 - config / logs フォルダについて
CAMServer - 特定商取引に関する法律に基づく表記
更新履歴 - 更新履歴 2007
更新履歴 - 更新履歴 2006
Java システム系 - Java 外部コマンドを実行し3つの結果を取得
Java 文字列 - Java LPAD、RPADで整形
Java 日付・時刻 - Java 2つの日付の差を求める
Java システム系 - Java システムプロパティを見やすく出力
Java システム系 - Java メモリー使用量を取得
Java 文字列 - Java ファイル名から拡張子を取り除く
Java 文字列 - Java ファイル名から拡張子を取得
Java ファイル・I/O - Java ディレクトリ内のファイル一覧を表示
Java ファイル・I/O - Java XMLEncoderでオブジェクトを保存
Java 日付・時刻 - Java 2つの日付の月数の差を求める
Java 日付・時刻 - Java 日付・時刻の計算 加算・減算が簡単に
Web関連 - 10の翻訳エンジンを比較できるサイト 翻訳くらべ
Web関連 - Excelの表からHTMLテーブルタグ一発作成
Web関連 - IETester - 複数のIEバージョンの動作確認を行える便利なソフト
Java ファイル・I/O - Java 再帰的にファイルを検索
Java 特集 - Java タスクトレイのアイコンを表示・点滅
Java ファイル・I/O - Java ファイルコピー(バッファサイズを変更)
Java ファイル・I/O - Java ファイルコピー(簡単・高速)
Java 特集 - Java ログフィルタでHTTPを解析
Java 特集 - Java リフレクション が簡単に
Java 日付・時刻 - Java 日付の妥当性・存在チェック
Java 日付・時刻 - Java 月末日付を取得する
Java 日付・時刻 - Java 現在(今日)の曜日を求める
Java 日付・時刻 - Java 日付文字列をDate型へ変換
Java 日付・時刻 - Java あらゆる日付・時刻文字列をDate、Calendar型へ
Java 文字列 - Java 文字列内のURLをリンクに変換
Java ネットワーク - Java 実行しているマシンのホスト名を取得
Java ネットワーク - Java IPアドレスからホスト名を取得
Java Swing - Java システムアイコンを抽出
Java Swing - Java クリップボードへコピー
Thanks Links・リンク集 - リンク集・その他お勧め

Java 現在(今日)の曜日を求める

java 現在(今日)の曜日を取得Calendar.DAY_OF_WEEK

Java で Calendar クラスを使用し、現在(今日)の曜日を取得するサンプルプログラムです。
取得には、 Calendar.DAY_OF_WEEK を利用します。

Calendar cal = Calendar.getInstance();
int week = cal.get(Calendar.DAY_OF_WEEK);
Calendar.DAY_OF_WEEKで取得できるリターン値は、日曜が1で始まる1~7 の数字ですのでサンプルプログラムでは switch 文により曜日を判定します。

サンプルプログラム

/**
 * 現在の曜日を返します。
 * @return	現在の曜日
 */
public static String getDayOfTheWeek() { 
    Calendar cal = Calendar.getInstance(); 
    switch (cal.get(Calendar.DAY_OF_WEEK)) {
        case Calendar.SUNDAY: return "日曜日";
        case Calendar.MONDAY: return "月曜日";
        case Calendar.TUESDAY: return "火曜日";
        case Calendar.WEDNESDAY: return "水曜日";
        case Calendar.THURSDAY: return "木曜日";
        case Calendar.FRIDAY: return "金曜日";
        case Calendar.SATURDAY: return "土曜日";
    }
    throw new IllegalStateException();
}
/**
 * 現在の曜日を返します。
 * ※曜日は省略します。
 * @return	現在の曜日
 */
public static String getDayOfTheWeekShort() { 
    Calendar cal = Calendar.getInstance(); 
    switch (cal.get(Calendar.DAY_OF_WEEK)) {
        case Calendar.SUNDAY: return "日";
        case Calendar.MONDAY: return "月";
        case Calendar.TUESDAY: return "火";
        case Calendar.WEDNESDAY: return "水";
        case Calendar.THURSDAY: return "木";
        case Calendar.FRIDAY: return "金";
        case Calendar.SATURDAY: return "土";
    }
    throw new IllegalStateException();
}	

実行結果

◆実行例
public static void main(String[] args) {
    // 今日の曜日を表示。
    System.out.println("今日は「" + getDayOfTheWeek() + "」です。");
    // 今日の曜日を表示。省略形です。
    System.out.println("今日は「" + getDayOfTheWeekShort() + "」です。");
}
◆出力結果
今日は「水曜日」です。
今日は「水」です。

このサンプルプログラムは Chat&Messenger の「カレンダー・スケジュール管理機能」で実際に利用しています。

ページトップへ
更新履歴 - 更新履歴 2016 - 2017
応用編 - 社内で検証済みバージョンでバージョンアップを通知
ダウンロード - ダウンロード詳細
応用編 - ショートカットキー一覧
その他 - プレミアムエディション
ダウンロード - CAMServer のダウンロード
更新履歴 - 更新履歴 2015
その他 - IP Messenger 互換について
インストール / Verup - インストール方法
インストール / Verup - バージョンアップ方法
更新履歴 - 更新履歴 2014
更新履歴 - 更新履歴 2013
Thanks Links・リンク集 - おすすめフリーソフトまとめ
更新履歴 - 更新履歴 2011 - 2012
更新履歴 - 更新履歴 2010
更新履歴 - 更新履歴 2009
インストール / Verup - インスートール方法 Mac OSX
その他 - 会社案内
CAMServer - CAMServer 概要
CAMServer - CAMServer の導入方法
CAMServer - ライセンスのご購入
インストール / Verup - バージョンアップとリリースポリシー
CAMServer - 文書・ファイル共有
ダウンロード - 過去のバージョンのダウンロード
CAMServer - 外部ユーザ取得・ルータ超え
Thanks Links・リンク集 - Thanks Links
インストール / Verup - アンインストール方法
CAMServer - オフライン時の Email 転送
応用編 - バックアップ設定
CAMServer - クライアント利用制限
CAMServer - メッセージログのサーバ集中管理
CAMServer - CAMServer のバージョンアップ
テレビ会議 / 音声通話 - テレビ会議・音声通話
CAMServer - CAMServer を Windows サービスとして起動
応用編 - パケット追跡について
テレビ会議 / 音声通話 - ヘッドセット・カメラの準備
テレビ会議 / 音声通話 - ヘッドセット・カメラの推奨商品
その他 - よくある質問
更新履歴 - 更新履歴 2008
Thanks Links・リンク集 - 相互リンク募集
CAMServer - よくある質問 CAMServer 編
メッセンジャー / チャット - 使い方、使用方法
応用編 - 便利な使い方(Tips)
メッセンジャー / チャット - 起動及び初期設定方法
メッセンジャー / チャット - メッセンジャー
メッセンジャー / チャット - メッセージ内のアイコン説明
メッセンジャー / チャット - チャット
メッセンジャー / チャット - ログ参照
メッセンジャー / チャット - ファイルやフォルダの送信・受信
メッセンジャー / チャット - アプリケーションの環境設定
メッセンジャー / チャット - ソート設定と優先順位設定
メッセンジャー / チャット - メッセージの保管
メッセンジャー / チャット - 不在モード
スケジュール / カレンダー - カレンダー
スケジュール / カレンダー - スケジュール共有
メッセンジャー / チャット - キャプチャ
メッセンジャー / チャット - 付箋
スケジュール / カレンダー - ToDo
スケジュール / カレンダー - 会議室・施設予約
応用編 - config / logs フォルダについて
CAMServer - 特定商取引に関する法律に基づく表記
更新履歴 - 更新履歴 2007
更新履歴 - 更新履歴 2006
Java システム系 - Java 外部コマンドを実行し3つの結果を取得
Java 文字列 - Java LPAD、RPADで整形
Java 日付・時刻 - Java 2つの日付の差を求める
Java システム系 - Java システムプロパティを見やすく出力
Java システム系 - Java メモリー使用量を取得
Java 文字列 - Java ファイル名から拡張子を取り除く
Java 文字列 - Java ファイル名から拡張子を取得
Java ファイル・I/O - Java ディレクトリ内のファイル一覧を表示
Java ファイル・I/O - Java XMLEncoderでオブジェクトを保存
Java 日付・時刻 - Java 2つの日付の月数の差を求める
Java 日付・時刻 - Java 日付・時刻の計算 加算・減算が簡単に
Web関連 - 10の翻訳エンジンを比較できるサイト 翻訳くらべ
Web関連 - Excelの表からHTMLテーブルタグ一発作成
Web関連 - IETester - 複数のIEバージョンの動作確認を行える便利なソフト
Java ファイル・I/O - Java 再帰的にファイルを検索
Java 特集 - Java タスクトレイのアイコンを表示・点滅
Java ファイル・I/O - Java ファイルコピー(バッファサイズを変更)
Java ファイル・I/O - Java ファイルコピー(簡単・高速)
Java 特集 - Java ログフィルタでHTTPを解析
Java 特集 - Java リフレクション が簡単に
Java 日付・時刻 - Java 日付の妥当性・存在チェック
Java 日付・時刻 - Java 月末日付を取得する
Java 日付・時刻 - Java 現在(今日)の曜日を求める
Java 日付・時刻 - Java 日付文字列をDate型へ変換
Java 日付・時刻 - Java あらゆる日付・時刻文字列をDate、Calendar型へ
Java 文字列 - Java 文字列内のURLをリンクに変換
Java ネットワーク - Java 実行しているマシンのホスト名を取得
Java ネットワーク - Java IPアドレスからホスト名を取得
Java Swing - Java システムアイコンを抽出
Java Swing - Java クリップボードへコピー
Thanks Links・リンク集 - リンク集・その他お勧め

Java 再帰的にファイルを検索

Java ディレクトリから再帰的にファイルを検索

Java で、指定されたディレクトリから、サブディレクトリも含め再帰的にファイルを検索し、検索条件に該当するファイルリストを取得するサンプルプログラムを紹介します。
これらは UNIX 系コマンドの ls -R 、Windows 系コマンドの dir /s と同等の処理を行います。
また、検索対象のファイル名にはワイルドカード文字として*を指定したり、正規表現を使用して検索する事ができます。

 使い方の例として、以下の場合、ディレクトリ filelist をサブディレクトリを含め再帰的に検索し、拡張子 java のファイルリストを取得します。

FileSearch search = new FileSearch();
File[] files = search.listFiles("C:/filelist/", "*.java");

サンプルプログラム


実行結果

 サンプルプログラムを確認するために、filelist ディレクトリを作成し以下のファイルを用意しました。
ファイル名と更新日付が表示されています。
※尚、現在の日付は2007/08/18だとします。

C:\filelist
    │  aaa.java      2007/08/18
    │  bbb.java      2007/08/18
    └─dir
           ccc.java   2007/07/17
           ddd.java   2007/08/18
           eee.jpg    2007/08/16
◆実行例
◆出力結果
●全てのファイルを取得
1:	C:\filelist\aaa.java
2:	C:\filelist\bbb.java
3:	C:\filelist\dir\ccc.java
4:	C:\filelist\dir\ddd.java
5:	C:\filelist\dir\eee.jpg

●拡張子javaのファイルを取得
1:	C:\filelist\aaa.java
2:	C:\filelist\bbb.java
3:	C:\filelist\dir\ccc.java
4:	C:\filelist\dir\ddd.java

●全てのファイルとディレクトリを取得
1:	C:\filelist\aaa.java
2:	C:\filelist\bbb.java
3:	C:\filelist\dir
4:	C:\filelist\dir\ccc.java
5:	C:\filelist\dir\ddd.java
6:	C:\filelist\dir\eee.jpg

●現在の日付から、2日前以降に更新されたファイルを取得
1:	C:\filelist\aaa.java
2:	C:\filelist\bbb.java
3:	C:\filelist\dir\ddd.java
4:	C:\filelist\dir\eee.jpg

●現在の日付から、30日以前の古いファイルを取得
1:	C:\filelist\dir\ccc.java


ページトップへ
更新履歴 - 更新履歴 2016 - 2017
応用編 - 社内で検証済みバージョンでバージョンアップを通知
ダウンロード - ダウンロード詳細
応用編 - ショートカットキー一覧
その他 - プレミアムエディション
ダウンロード - CAMServer のダウンロード
更新履歴 - 更新履歴 2015
その他 - IP Messenger 互換について
インストール / Verup - インストール方法
インストール / Verup - バージョンアップ方法
更新履歴 - 更新履歴 2014
更新履歴 - 更新履歴 2013
Thanks Links・リンク集 - おすすめフリーソフトまとめ
更新履歴 - 更新履歴 2011 - 2012
更新履歴 - 更新履歴 2010
更新履歴 - 更新履歴 2009
インストール / Verup - インスートール方法 Mac OSX
その他 - 会社案内
CAMServer - CAMServer 概要
CAMServer - CAMServer の導入方法
CAMServer - ライセンスのご購入
インストール / Verup - バージョンアップとリリースポリシー
CAMServer - 文書・ファイル共有
ダウンロード - 過去のバージョンのダウンロード
CAMServer - 外部ユーザ取得・ルータ超え
Thanks Links・リンク集 - Thanks Links
インストール / Verup - アンインストール方法
CAMServer - オフライン時の Email 転送
応用編 - バックアップ設定
CAMServer - クライアント利用制限
CAMServer - メッセージログのサーバ集中管理
CAMServer - CAMServer のバージョンアップ
テレビ会議 / 音声通話 - テレビ会議・音声通話
CAMServer - CAMServer を Windows サービスとして起動
応用編 - パケット追跡について
テレビ会議 / 音声通話 - ヘッドセット・カメラの準備
テレビ会議 / 音声通話 - ヘッドセット・カメラの推奨商品
その他 - よくある質問
更新履歴 - 更新履歴 2008
Thanks Links・リンク集 - 相互リンク募集
CAMServer - よくある質問 CAMServer 編
メッセンジャー / チャット - 使い方、使用方法
応用編 - 便利な使い方(Tips)
メッセンジャー / チャット - 起動及び初期設定方法
メッセンジャー / チャット - メッセンジャー
メッセンジャー / チャット - メッセージ内のアイコン説明
メッセンジャー / チャット - チャット
メッセンジャー / チャット - ログ参照
メッセンジャー / チャット - ファイルやフォルダの送信・受信
メッセンジャー / チャット - アプリケーションの環境設定
メッセンジャー / チャット - ソート設定と優先順位設定
メッセンジャー / チャット - メッセージの保管
メッセンジャー / チャット - 不在モード
スケジュール / カレンダー - カレンダー
スケジュール / カレンダー - スケジュール共有
メッセンジャー / チャット - キャプチャ
メッセンジャー / チャット - 付箋
スケジュール / カレンダー - ToDo
スケジュール / カレンダー - 会議室・施設予約
応用編 - config / logs フォルダについて
CAMServer - 特定商取引に関する法律に基づく表記
更新履歴 - 更新履歴 2007
更新履歴 - 更新履歴 2006
Java システム系 - Java 外部コマンドを実行し3つの結果を取得
Java 文字列 - Java LPAD、RPADで整形
Java 日付・時刻 - Java 2つの日付の差を求める
Java システム系 - Java システムプロパティを見やすく出力
Java システム系 - Java メモリー使用量を取得
Java 文字列 - Java ファイル名から拡張子を取り除く
Java 文字列 - Java ファイル名から拡張子を取得
Java ファイル・I/O - Java ディレクトリ内のファイル一覧を表示
Java ファイル・I/O - Java XMLEncoderでオブジェクトを保存
Java 日付・時刻 - Java 2つの日付の月数の差を求める
Java 日付・時刻 - Java 日付・時刻の計算 加算・減算が簡単に
Web関連 - 10の翻訳エンジンを比較できるサイト 翻訳くらべ
Web関連 - Excelの表からHTMLテーブルタグ一発作成
Web関連 - IETester - 複数のIEバージョンの動作確認を行える便利なソフト
Java ファイル・I/O - Java 再帰的にファイルを検索
Java 特集 - Java タスクトレイのアイコンを表示・点滅
Java ファイル・I/O - Java ファイルコピー(バッファサイズを変更)
Java ファイル・I/O - Java ファイルコピー(簡単・高速)
Java 特集 - Java ログフィルタでHTTPを解析
Java 特集 - Java リフレクション が簡単に
Java 日付・時刻 - Java 日付の妥当性・存在チェック
Java 日付・時刻 - Java 月末日付を取得する
Java 日付・時刻 - Java 現在(今日)の曜日を求める
Java 日付・時刻 - Java 日付文字列をDate型へ変換
Java 日付・時刻 - Java あらゆる日付・時刻文字列をDate、Calendar型へ
Java 文字列 - Java 文字列内のURLをリンクに変換
Java ネットワーク - Java 実行しているマシンのホスト名を取得
Java ネットワーク - Java IPアドレスからホスト名を取得
Java Swing - Java システムアイコンを抽出
Java Swing - Java クリップボードへコピー
Thanks Links・リンク集 - リンク集・その他お勧め

Java 日付文字列をDate型へ変換

Java 日付文字列java.util.Date 型で取得

Java で日付文字列 (フォーマット yyyy/MM/dd ) を java.util.Date 型へ変換するサンプルプログラムです。

サンプルプログラム

/**
 * 日付文字列"yyyy/MM/dd"をjava.util.Date型へ変換します。
 * @param str 変換対象の文字列
 * @return 変換後のjava.util.Dateオブジェクト
 * @throws ParseException 日付文字列が"yyyy/MM/dd"以外の場合 
 */
public static Date toDate(String str) throws ParseException {
    Date  date = DateFormat.getDateInstance().parse(str);
    return date;
}

実行結果

◆実行例
public static void main(String[] args) {
    try {
        // 通常のパターン
        Date date  = toDate("2007/01/01");
        System.out.println(date);

        // フォーマトが違うパターン
        date  = toDate("2007-01-01");
        System.out.println(date);
    } catch (ParseException e) {
        e.printStackTrace();
    }
}
◆出力結果
2007/01/01='Mon Jan 01 00:00:00 JST 2007'
 yyyy/MM/ddの日付文字列は正しく変換されたようですが、yyyy-MM-ddではどうでしょうか。
java.text.ParseException: Unparseable date: "2007-01-01"
    at java.text.DateFormat.parse(DateFormat.java:335)
    at Main.toDate(DateUtil.java:627)
    at Main.main(DateUtil.java:639)
 yyyy-MM-ddではParseExceptionが発生してしまいました。

DateFormat のサブクラスの java.text.SimpleDateFormat を使用し以下のように記述すると変換できるのですが、
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
format.parse("2007-01-01");  
もっと汎用的なプログラムが欲しいですよね。
次はあらゆる日付文字列を可能な限り、java.util.Date 型へ変換する方法をご紹介します。
「あらゆる日付・時刻文字列を Date、Calendar 型へ変換」

ページトップへ
更新履歴 - 更新履歴 2016 - 2017
応用編 - 社内で検証済みバージョンでバージョンアップを通知
ダウンロード - ダウンロード詳細
応用編 - ショートカットキー一覧
その他 - プレミアムエディション
ダウンロード - CAMServer のダウンロード
更新履歴 - 更新履歴 2015
その他 - IP Messenger 互換について
インストール / Verup - インストール方法
インストール / Verup - バージョンアップ方法
更新履歴 - 更新履歴 2014
更新履歴 - 更新履歴 2013
Thanks Links・リンク集 - おすすめフリーソフトまとめ
更新履歴 - 更新履歴 2011 - 2012
更新履歴 - 更新履歴 2010
更新履歴 - 更新履歴 2009
インストール / Verup - インスートール方法 Mac OSX
その他 - 会社案内
CAMServer - CAMServer 概要
CAMServer - CAMServer の導入方法
CAMServer - ライセンスのご購入
インストール / Verup - バージョンアップとリリースポリシー
CAMServer - 文書・ファイル共有
ダウンロード - 過去のバージョンのダウンロード
CAMServer - 外部ユーザ取得・ルータ超え
Thanks Links・リンク集 - Thanks Links
インストール / Verup - アンインストール方法
CAMServer - オフライン時の Email 転送
応用編 - バックアップ設定
CAMServer - クライアント利用制限
CAMServer - メッセージログのサーバ集中管理
CAMServer - CAMServer のバージョンアップ
テレビ会議 / 音声通話 - テレビ会議・音声通話
CAMServer - CAMServer を Windows サービスとして起動
応用編 - パケット追跡について
テレビ会議 / 音声通話 - ヘッドセット・カメラの準備
テレビ会議 / 音声通話 - ヘッドセット・カメラの推奨商品
その他 - よくある質問
更新履歴 - 更新履歴 2008
Thanks Links・リンク集 - 相互リンク募集
CAMServer - よくある質問 CAMServer 編
メッセンジャー / チャット - 使い方、使用方法
応用編 - 便利な使い方(Tips)
メッセンジャー / チャット - 起動及び初期設定方法
メッセンジャー / チャット - メッセンジャー
メッセンジャー / チャット - メッセージ内のアイコン説明
メッセンジャー / チャット - チャット
メッセンジャー / チャット - ログ参照
メッセンジャー / チャット - ファイルやフォルダの送信・受信
メッセンジャー / チャット - アプリケーションの環境設定
メッセンジャー / チャット - ソート設定と優先順位設定
メッセンジャー / チャット - メッセージの保管
メッセンジャー / チャット - 不在モード
スケジュール / カレンダー - カレンダー
スケジュール / カレンダー - スケジュール共有
メッセンジャー / チャット - キャプチャ
メッセンジャー / チャット - 付箋
スケジュール / カレンダー - ToDo
スケジュール / カレンダー - 会議室・施設予約
応用編 - config / logs フォルダについて
CAMServer - 特定商取引に関する法律に基づく表記
更新履歴 - 更新履歴 2007
更新履歴 - 更新履歴 2006
Java システム系 - Java 外部コマンドを実行し3つの結果を取得
Java 文字列 - Java LPAD、RPADで整形
Java 日付・時刻 - Java 2つの日付の差を求める
Java システム系 - Java システムプロパティを見やすく出力
Java システム系 - Java メモリー使用量を取得
Java 文字列 - Java ファイル名から拡張子を取り除く
Java 文字列 - Java ファイル名から拡張子を取得
Java ファイル・I/O - Java ディレクトリ内のファイル一覧を表示
Java ファイル・I/O - Java XMLEncoderでオブジェクトを保存
Java 日付・時刻 - Java 2つの日付の月数の差を求める
Java 日付・時刻 - Java 日付・時刻の計算 加算・減算が簡単に
Web関連 - 10の翻訳エンジンを比較できるサイト 翻訳くらべ
Web関連 - Excelの表からHTMLテーブルタグ一発作成
Web関連 - IETester - 複数のIEバージョンの動作確認を行える便利なソフト
Java ファイル・I/O - Java 再帰的にファイルを検索
Java 特集 - Java タスクトレイのアイコンを表示・点滅
Java ファイル・I/O - Java ファイルコピー(バッファサイズを変更)
Java ファイル・I/O - Java ファイルコピー(簡単・高速)
Java 特集 - Java ログフィルタでHTTPを解析
Java 特集 - Java リフレクション が簡単に
Java 日付・時刻 - Java 日付の妥当性・存在チェック
Java 日付・時刻 - Java 月末日付を取得する
Java 日付・時刻 - Java 現在(今日)の曜日を求める
Java 日付・時刻 - Java 日付文字列をDate型へ変換
Java 日付・時刻 - Java あらゆる日付・時刻文字列をDate、Calendar型へ
Java 文字列 - Java 文字列内のURLをリンクに変換
Java ネットワーク - Java 実行しているマシンのホスト名を取得
Java ネットワーク - Java IPアドレスからホスト名を取得
Java Swing - Java システムアイコンを抽出
Java Swing - Java クリップボードへコピー
Thanks Links・リンク集 - リンク集・その他お勧め

Java あらゆる日付・時刻文字列をDate、Calendar型へ

あらゆる日付時刻文字列をjava.util.Datejava.util.Calendarへ変換

Java であらゆる日付、時刻文字列を、可能であれば java.util.Calendarjava.util.Date 型へ変換するサンプルプログラムです。
変換には一旦デフォルトの日付・時刻文字列フォーマットを行い、その後 java.util.Calendar 型に変換します。
変換が不可能な場合は IllegalArgumentException がスローされます。
また、java.util.Date 型への変換は Calendar クラスの getTime() メソッドを使用します。

●変換可能な形式は以下となります。
  • yyyy/MM/dd
  • yy/MM/dd
  • yyyy-MM-dd
  • yy-MM-dd
  • yyyyMMdd
上記に以下の時間フィールドが組み合わされた状態でも有効です。
  • HH:mm
  • HH:mm:ss
  • HH:mm:ss.SSS

サンプルプログラム

実行結果

◆実行例 ◆出力結果
----- 日付のみ ---------------------------
[2007/01/01] = 'Mon Jan 01 00:00:00 JST 2007'
[2007-01-01] = 'Mon Jan 01 00:00:00 JST 2007'
[20070101]   = 'Mon Jan 01 00:00:00 JST 2007'
[07-01-01]   = 'Mon Jan 01 00:00:00 JST 2007'

----- 日付+時刻 --------------------------
[2007/01/01 12:00:00] = 'Mon Jan 01 12:00:00 JST 2007'
[20070101 12:00:00]   = 'Mon Jan 01 12:00:00 JST 2007'
[2007/01/01 12:00]    = 'Mon Jan 01 12:00:00 JST 2007'

----- 時刻のみ ---------------------------
[12:00:00]   = 'Wed Jun 06 12:00:00 JST 2007'

このサンプルプログラムは Chat&Messenger の「カレンダー・スケジュール管理機能」で実際に利用しています。

ページトップへ
更新履歴 - 更新履歴 2016 - 2017
応用編 - 社内で検証済みバージョンでバージョンアップを通知
ダウンロード - ダウンロード詳細
応用編 - ショートカットキー一覧
その他 - プレミアムエディション
ダウンロード - CAMServer のダウンロード
更新履歴 - 更新履歴 2015
その他 - IP Messenger 互換について
インストール / Verup - インストール方法
インストール / Verup - バージョンアップ方法
更新履歴 - 更新履歴 2014
更新履歴 - 更新履歴 2013
Thanks Links・リンク集 - おすすめフリーソフトまとめ
更新履歴 - 更新履歴 2011 - 2012
更新履歴 - 更新履歴 2010
更新履歴 - 更新履歴 2009
インストール / Verup - インスートール方法 Mac OSX
その他 - 会社案内
CAMServer - CAMServer 概要
CAMServer - CAMServer の導入方法
CAMServer - ライセンスのご購入
インストール / Verup - バージョンアップとリリースポリシー
CAMServer - 文書・ファイル共有
ダウンロード - 過去のバージョンのダウンロード
CAMServer - 外部ユーザ取得・ルータ超え
Thanks Links・リンク集 - Thanks Links
インストール / Verup - アンインストール方法
CAMServer - オフライン時の Email 転送
応用編 - バックアップ設定
CAMServer - クライアント利用制限
CAMServer - メッセージログのサーバ集中管理
CAMServer - CAMServer のバージョンアップ
テレビ会議 / 音声通話 - テレビ会議・音声通話
CAMServer - CAMServer を Windows サービスとして起動
応用編 - パケット追跡について
テレビ会議 / 音声通話 - ヘッドセット・カメラの準備
テレビ会議 / 音声通話 - ヘッドセット・カメラの推奨商品
その他 - よくある質問
更新履歴 - 更新履歴 2008
Thanks Links・リンク集 - 相互リンク募集
CAMServer - よくある質問 CAMServer 編
メッセンジャー / チャット - 使い方、使用方法
応用編 - 便利な使い方(Tips)
メッセンジャー / チャット - 起動及び初期設定方法
メッセンジャー / チャット - メッセンジャー
メッセンジャー / チャット - メッセージ内のアイコン説明
メッセンジャー / チャット - チャット
メッセンジャー / チャット - ログ参照
メッセンジャー / チャット - ファイルやフォルダの送信・受信
メッセンジャー / チャット - アプリケーションの環境設定
メッセンジャー / チャット - ソート設定と優先順位設定
メッセンジャー / チャット - メッセージの保管
メッセンジャー / チャット - 不在モード
スケジュール / カレンダー - カレンダー
スケジュール / カレンダー - スケジュール共有
メッセンジャー / チャット - キャプチャ
メッセンジャー / チャット - 付箋
スケジュール / カレンダー - ToDo
スケジュール / カレンダー - 会議室・施設予約
応用編 - config / logs フォルダについて
CAMServer - 特定商取引に関する法律に基づく表記
更新履歴 - 更新履歴 2007
更新履歴 - 更新履歴 2006
Java システム系 - Java 外部コマンドを実行し3つの結果を取得
Java 文字列 - Java LPAD、RPADで整形
Java 日付・時刻 - Java 2つの日付の差を求める
Java システム系 - Java システムプロパティを見やすく出力
Java システム系 - Java メモリー使用量を取得
Java 文字列 - Java ファイル名から拡張子を取り除く
Java 文字列 - Java ファイル名から拡張子を取得
Java ファイル・I/O - Java ディレクトリ内のファイル一覧を表示
Java ファイル・I/O - Java XMLEncoderでオブジェクトを保存
Java 日付・時刻 - Java 2つの日付の月数の差を求める
Java 日付・時刻 - Java 日付・時刻の計算 加算・減算が簡単に
Web関連 - 10の翻訳エンジンを比較できるサイト 翻訳くらべ
Web関連 - Excelの表からHTMLテーブルタグ一発作成
Web関連 - IETester - 複数のIEバージョンの動作確認を行える便利なソフト
Java ファイル・I/O - Java 再帰的にファイルを検索
Java 特集 - Java タスクトレイのアイコンを表示・点滅
Java ファイル・I/O - Java ファイルコピー(バッファサイズを変更)
Java ファイル・I/O - Java ファイルコピー(簡単・高速)
Java 特集 - Java ログフィルタでHTTPを解析
Java 特集 - Java リフレクション が簡単に
Java 日付・時刻 - Java 日付の妥当性・存在チェック
Java 日付・時刻 - Java 月末日付を取得する
Java 日付・時刻 - Java 現在(今日)の曜日を求める
Java 日付・時刻 - Java 日付文字列をDate型へ変換
Java 日付・時刻 - Java あらゆる日付・時刻文字列をDate、Calendar型へ
Java 文字列 - Java 文字列内のURLをリンクに変換
Java ネットワーク - Java 実行しているマシンのホスト名を取得
Java ネットワーク - Java IPアドレスからホスト名を取得
Java Swing - Java システムアイコンを抽出
Java Swing - Java クリップボードへコピー
Thanks Links・リンク集 - リンク集・その他お勧め

Java XMLEncoderでオブジェクトを保存

Java XMLEncoderでオブジェクトを保存、XMLDecoderで復元

JavaでオブジェクトをXML形式で保存するサンプルプログラムを紹介します。
XMLの出力にはjava.beans.XMLEncoderを使用します。
またjava.beans.XMLDecoderを使用し、保存したオブジェクトを復元するサンプルプログラムも同時に紹介します。

サンプルプログラム

  • プライベートで宣言されたフィールドは、Getter及びSetterメソッドを定義すると保存されます。
  • 変数に変更がある場合のみ、XMLファイルに保存されます。
  • 保存するオブジェクトはjava.util.HashMapや、java.util.ArrayList等も指定できます。簡易的にオブジェクトの状態を保存しておくのに便利です。

※保存するクラスのサンプルとして、以下のクラスを使用します。

実行結果

◆実行例 ◆出力結果
ソフト名:Chat&Messenger チャットもメッセンジャーも!!
URL:http://sattontanabe.blog86.fc2.com/
◆C:\\FreeSoft.xmlの内容
<?xml version="1.0" encoding="UTF-8"?> 
<java version="1.5.0_08" class="java.beans.XMLDecoder"> 
 <object class="FreeSoft"> 
  <void property="name"> 
   <string>Chat&Messenger チャットもメッセンジャーも!!</string> 
  </void> 
  <void property="url"> 
   <string>http://sattontanabe.blog86.fc2.com/</string> 
  </void> 
 </object> 
</java> 

利用する場合の注意点

便利な java.beans.XMLEncoder、 java.beans.XMLDecoder クラスですが、 Chat&Messenger で実践的に利用すると、極めてレアケースですが、java.beans.XMLEncoder でXMLへ出力時、ファイルが0バイトになる問題を確認しています。
0バイトのファイルを読み込むと「標準エラー出力」にParseExceptionが記録されます。
この原因はFileOutputStream のインスタンスを生成した時点で、ファイルは空になってしまいます。 FileOutputStream のインスタンス生成後、XMLデータを出力する前にJavaプロセスがシャットダウンされると発生すると考えています。
Chat&Messenger ではこの問題のため、バックアップファイルを作成し問題を回避しています。

ページトップへ
更新履歴 - 更新履歴 2016 - 2017
応用編 - 社内で検証済みバージョンでバージョンアップを通知
ダウンロード - ダウンロード詳細
応用編 - ショートカットキー一覧
その他 - プレミアムエディション
ダウンロード - CAMServer のダウンロード
更新履歴 - 更新履歴 2015
その他 - IP Messenger 互換について
インストール / Verup - インストール方法
インストール / Verup - バージョンアップ方法
更新履歴 - 更新履歴 2014
更新履歴 - 更新履歴 2013
Thanks Links・リンク集 - おすすめフリーソフトまとめ
更新履歴 - 更新履歴 2011 - 2012
更新履歴 - 更新履歴 2010
更新履歴 - 更新履歴 2009
インストール / Verup - インスートール方法 Mac OSX
その他 - 会社案内
CAMServer - CAMServer 概要
CAMServer - CAMServer の導入方法
CAMServer - ライセンスのご購入
インストール / Verup - バージョンアップとリリースポリシー
CAMServer - 文書・ファイル共有
ダウンロード - 過去のバージョンのダウンロード
CAMServer - 外部ユーザ取得・ルータ超え
Thanks Links・リンク集 - Thanks Links
インストール / Verup - アンインストール方法
CAMServer - オフライン時の Email 転送
応用編 - バックアップ設定
CAMServer - クライアント利用制限
CAMServer - メッセージログのサーバ集中管理
CAMServer - CAMServer のバージョンアップ
テレビ会議 / 音声通話 - テレビ会議・音声通話
CAMServer - CAMServer を Windows サービスとして起動
応用編 - パケット追跡について
テレビ会議 / 音声通話 - ヘッドセット・カメラの準備
テレビ会議 / 音声通話 - ヘッドセット・カメラの推奨商品
その他 - よくある質問
更新履歴 - 更新履歴 2008
Thanks Links・リンク集 - 相互リンク募集
CAMServer - よくある質問 CAMServer 編
メッセンジャー / チャット - 使い方、使用方法
応用編 - 便利な使い方(Tips)
メッセンジャー / チャット - 起動及び初期設定方法
メッセンジャー / チャット - メッセンジャー
メッセンジャー / チャット - メッセージ内のアイコン説明
メッセンジャー / チャット - チャット
メッセンジャー / チャット - ログ参照
メッセンジャー / チャット - ファイルやフォルダの送信・受信
メッセンジャー / チャット - アプリケーションの環境設定
メッセンジャー / チャット - ソート設定と優先順位設定
メッセンジャー / チャット - メッセージの保管
メッセンジャー / チャット - 不在モード
スケジュール / カレンダー - カレンダー
スケジュール / カレンダー - スケジュール共有
メッセンジャー / チャット - キャプチャ
メッセンジャー / チャット - 付箋
スケジュール / カレンダー - ToDo
スケジュール / カレンダー - 会議室・施設予約
応用編 - config / logs フォルダについて
CAMServer - 特定商取引に関する法律に基づく表記
更新履歴 - 更新履歴 2007
更新履歴 - 更新履歴 2006
Java システム系 - Java 外部コマンドを実行し3つの結果を取得
Java 文字列 - Java LPAD、RPADで整形
Java 日付・時刻 - Java 2つの日付の差を求める
Java システム系 - Java システムプロパティを見やすく出力
Java システム系 - Java メモリー使用量を取得
Java 文字列 - Java ファイル名から拡張子を取り除く
Java 文字列 - Java ファイル名から拡張子を取得
Java ファイル・I/O - Java ディレクトリ内のファイル一覧を表示
Java ファイル・I/O - Java XMLEncoderでオブジェクトを保存
Java 日付・時刻 - Java 2つの日付の月数の差を求める
Java 日付・時刻 - Java 日付・時刻の計算 加算・減算が簡単に
Web関連 - 10の翻訳エンジンを比較できるサイト 翻訳くらべ
Web関連 - Excelの表からHTMLテーブルタグ一発作成
Web関連 - IETester - 複数のIEバージョンの動作確認を行える便利なソフト
Java ファイル・I/O - Java 再帰的にファイルを検索
Java 特集 - Java タスクトレイのアイコンを表示・点滅
Java ファイル・I/O - Java ファイルコピー(バッファサイズを変更)
Java ファイル・I/O - Java ファイルコピー(簡単・高速)
Java 特集 - Java ログフィルタでHTTPを解析
Java 特集 - Java リフレクション が簡単に
Java 日付・時刻 - Java 日付の妥当性・存在チェック
Java 日付・時刻 - Java 月末日付を取得する
Java 日付・時刻 - Java 現在(今日)の曜日を求める
Java 日付・時刻 - Java 日付文字列をDate型へ変換
Java 日付・時刻 - Java あらゆる日付・時刻文字列をDate、Calendar型へ
Java 文字列 - Java 文字列内のURLをリンクに変換
Java ネットワーク - Java 実行しているマシンのホスト名を取得
Java ネットワーク - Java IPアドレスからホスト名を取得
Java Swing - Java システムアイコンを抽出
Java Swing - Java クリップボードへコピー
Thanks Links・リンク集 - リンク集・その他お勧め

会社情報 Copyright ©Chat&Messenger Co.,Ltd. All rights reserved.