質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

1527閲覧

MySQL Javaからデータを登録すると登録日が1日前になってしまう

退会済みユーザー

退会済みユーザー

総合スコア0

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2020/02/01 04:45

編集2020/02/01 05:05

登録日がシステム日付になるように登録したいです。
以下に記載のKakeibo.Form以外のクラスはjava.util.dateを使っています。
mMySQLの日付はdate型です。

イメージ説明

Controller

1/* 2 * 登録 3 * 4 @PostMapping("/") 5 public ModelAndView insert(@ModelAttribute("KakeiboForm") Kakeibo entity, @Valid KakeiboForm form, 6 ModelAndView mav) { 7 mav.setViewName("init"); 8 mav.addObject("kakeiboForm", new KakeiboForm()); 9 Date date = new Date(); 10 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 11 String today = sdf.format(date); 12 mav.addObject("date", today); 13 repository.saveAndFlush(entity); 14 return mav; 15 }

Kakeibo.Form

1import java.sql.Date; 2 3public class KakeiboForm { 4 private long id; 5 private Date date;

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/02/01 04:55 編集

ひとまず「丸投げ」です。 「質問するときのヒント」「質問テンプレート」参考に質問を再編してください。
coco_bauer

2020/02/01 05:29

タイムゾーンの設定は、どうなっていますか? 質問に表示されている画面は、日本時間の何日の何時何分に実行したものですか? java.sql.dateは世界標準時(UT)で、日本標準時(JST)より9時間遅れます。そのため、日本標準時の2月1日0時0分から2月1日9時0分の直前まで、世界標準時の日付は1月31日です。こうした時差を考慮してらっしゃいますか?
退会済みユーザー

退会済みユーザー

2020/02/01 05:47

ありがとうございます。そういった点は考慮してませんでした。本日の13時ごろに実行したものです。 java.sql.dateを使う場合はシステム日付は取得できないということですか?
退会済みユーザー

退会済みユーザー

2020/02/02 02:22

aws ? アメリカ西海岸/東海岸時間で登録すると ロサンゼルス/西海岸:JST-17 ボストン  /東海岸:JST-14 なのですがそこらへんは大丈夫ですか?
退会済みユーザー

退会済みユーザー

2020/02/02 02:52

すいません、勉強不足でそこらへんのことは全く分かりません。 時間の設定に関するコードは書いてません。
xebme

2020/02/02 04:55

MySQLの接続URLにserverTimezone=を指定していませんか? hibernate.propertiesか、hibernate.cfg.xmlにあるはず。
退会済みユーザー

退会済みユーザー

2020/02/02 06:00

applicaton.propertiesのserverTimezone=UTCになっており解決できました。ありがとうございました。
guest

回答1

0

ベストアンサー

mysql側の時間がUTC時間になってたりしませんか?
ためしに、mysqlで SELECT NOW(); などを実行してみてください。
現在時間の9時間前が表示されたら、mysqlがUTC時間になっています。

投稿2020/02/01 16:47

knr

総合スコア20

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/02/01 23:26 編集

回答ありがとうございます。 Select now() ;をしたところ現在の日時が取れたのでUTCではないと思います。
knr

2020/02/02 03:28

それでは、 `String today = sdf.format(date);` の箇所で想定している時刻が取れているかみてみてください。 デバッグモードで起動するか、直後に `System.out.println(today);` などとして確認できると思います。
退会済みユーザー

退会済みユーザー

2020/02/02 06:01

applicaton.propertiesのserverTimezone=UTCになっており解決できました。ご丁寧にありがとうございました。また何かありましたらよろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問