もしこのブログがお役に立ちましたら、次回のAmazonでのお買い物時に こちらのリンクから 購入していただけますと嬉しく思います。

2021年7月19日

mysqlで「java.lang.IllegalArgumentException: HOUR_OF_DAY: 0 ->1」というエラーが出る

javaでMySQL Connector/J 8.0を使ってdate型カラムのデータを取得する際、
java.lang.IllegalArgumentException: HOUR_OF_DAY: 0 ->1
というエラーが出る場合があります。実はある特定の日付が格納されている場合にこのエラーが出ます。

特定の日付とはこちらの4つ。
1948-05-02 1949-04-03 1950-05-07 1951-05-06
何の日付かと言うと、過去に日本でサマータイムが導入されたことがある年のサマータイム開始日です。どうしてエラーが起きるかというと、1つ目の例で言うと、1948-05-02の00:00:00から00:59:59はこの世に存在しないからです。つまりdate型カラムで1948-05-02が格納されている場合、DBには1948-05-02 00:00:00に変換されるデータがありますが、その時間が当時の日本では存在しないのでエラーが出るわけです。

この場合、JDBCの接続URLを次のように修正する必要があります。
serverTimezone=Asia/Tokyo ↓ serverTimezone=GMT%2B9
このように、タイムゾーンIDではなくオフセットで指定するとサマータイムを認識させないで済みます。

2021年7月13日

google.com.hkへの自動転送をストップする

海外やVPN環境でグーグル検索するとき、google.comが自動的にgoogle.com.hkへ転送されてしまうことがあります。 
そんなときは


にアクセスしてみてください。 
もしかすると直るかも知れません。