ユーザから入力された8桁の数値をTimestamp型に変換する、下記のプログラムを作成したのですが、
例えば、"20111031"を入力して実行した時に、
最終的に出力されるデータは"2011-10-31 23:59:59.0"となります。(ミリ秒部分が"0")
これを、
"2011-10-31 23:59:59.9"(ミリ秒部分が"9"など)のように、
その日の時刻一杯になるような値に変換するには、
プログラムをどのように修正すれば良いでしょうか?
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
public class TimeCheck {
public static void main(String[] args) {
String inputTime = args[0] + "235959";
DateFormat inDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
DateFormat outDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
String oldTime = outDateFormat.format(inDateFormat.parse(inputTime));
// Timestamp型に変換
Timestamp newTime = Timestamp.valueOf(oldTime);
System.out.print(newTime);
} catch (Exception e) {
e.printStackTrace();
}
}
}
No.1
- 回答日時:
ありがとうございます!下記に修正したら、目的通り実行できました
(が、プログラムとして正しいのか分かりません。。。)
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
public class TimeCheck {
public static void main(String[] args) {
String inputTime = args[0] + "235959999";
DateFormat inDateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS");
DateFormat outDateFormat = new SimpleDateFormat("yyyy-MM-dd
HH:mm:ss.SSS");
try {
String oldTime = outDateFormat.format(inDateFormat.parse(inputTime));
// Timestamp型に変換
Timestamp newTime = Timestamp.valueOf(oldTime);
System.out.print(newTime);
} catch (Exception e) {
e.printStackTrace();
}
}
}
No.2ベストアンサー
- 回答日時:
結果が正しく表示されるかもしれないけど。
40点くらいかなぁ。
protected static Timestamp toTimestamp(String ymd) throws ParseException {
String old = ymd + "235959999";
Date d = new SimpleDateFormat("yyyyMMddHHmmssSSS").parse(old);
return new Timestamp(d.getTime());
}
Date#getTime() // return by millisecconds
を利用すれば
String -> Date -> String -> Timestamp が
String -> Date -> Timestamp となる。
さらに Date 化を減らす。
String ymd2 = ymd.replaceAll("([\\d]{4})([\\d]{2})([\\d]{2})", "$1-$2-$3");
String old = ymd2 + " 23:59:59.999";
return Timestamp.valueOf(old);
となる。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Java での グローバルIP取得
-
Selenium IDEでexportしたコー...
-
BOOL値を逆にしたい
-
Java配列でNullPointerExceptio...
-
java キーボード入力された値の...
-
JAVA EOFの検出 (条件文で「...
-
System.err. printlnとSystem.o...
-
iterateで受け取った値を処理に...
-
EXCEL VBA で、0から?1から?
-
コマンドライン引数の例外処理...
-
Java配列の問題を教えてくださ...
-
SwingでJtableのヘッダ行が表示...
-
Eclipseのコンソールを常に表示...
-
cloneメソッドについて (java)
-
ループ処理の際、最後だけ","を...
-
[JAVA]try 内の変数を外で!?
-
変数を動的に作るには?
-
ボタンの複数割り当てについて
-
C言語 重複しない4ケタの乱数...
-
JSPでHashMap・配列の変数の値...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
eclipseに記述したjavaファイル...
-
「例外 *** は対応する try 文...
-
Selenium IDEでexportしたコー...
-
ColabでのPytorchのエラー
-
setAttribute(String, int)は適...
-
Javaを使ってデジタル時計を作...
-
<forEach> 内で供給された "ite...
-
importするには java.io.*; imp...
-
importとextendsの用い方の違い...
-
do while文のエラー??
-
javaで警告音
-
ActionForm form にnullが入っ...
-
(急募) Java (CSVをしよう)一...
-
文字サイズが可変のラベル
-
JavaアプリでWWWサーバにアクセ...
-
生年月日と今日の日付から年齢...
-
正規表現について
-
import 文
-
Androidで画面遷移ができません.
-
【JAVAエラー】互換性のない型...
おすすめ情報