ユーザから入力された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.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);
となる。
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();
}
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java java final 1 2022/06/10 22:49
- Java Java 配列<選挙> 4 2023/07/31 15:07
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Visual Basic(VBA) エクセルVBA Workbook変数に変数を使ったファイル名を格納したい 5 2023/06/13 14:46
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
eclipseに記述したjavaファイル...
-
シャットダウンフックが呼ばれない
-
Androidプログラムについて
-
生年月日と今日の日付から年齢...
-
干支の計算で。。。
-
半透明の画像
-
「例外 *** は対応する try 文...
-
python OpenPyXLを使って出力結...
-
二次元配列について
-
ActionForm form にnullが入っ...
-
アーティスト名リストを取得す...
-
importするには java.io.*; imp...
-
JAVAサーブレット。 HTML...
-
<forEach> 内で供給された "ite...
-
Javaを使ってデジタル時計を作...
-
IF関数でEmpty値を設定する方法。
-
C言語のポインターに関する警告
-
System.err. printlnとSystem.o...
-
System.out.printlnの意味がよ...
-
1~100までの数字を表示し、か...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
eclipseに記述したjavaファイル...
-
「例外 *** は対応する try 文...
-
ColabでのPytorchのエラー
-
Javaを使ってデジタル時計を作...
-
<forEach> 内で供給された "ite...
-
文字列を数式に
-
importするには java.io.*; imp...
-
python OpenPyXLを使って出力結...
-
Selenium IDEでexportしたコー...
-
シャットダウンフックが呼ばれない
-
Java3Dで横置き円筒体の円筒中...
-
Javaで常駐するソフトを作って...
-
生年月日と今日の日付から年齢...
-
Javaを使用して定時送信をしたい
-
干支の計算で。。。
-
Java での グローバルIP取得
-
GridBagLayoutについての質問
-
ファイル名を動的に生成したい
-
HTMLでのTableタグデータ取得方法
-
importとextendsの用い方の違い...
おすすめ情報