JavaでString型とTimestamp型を変換する方法を現役エンジニアが解説【初心者向け】
初心者向けにJavaでString型とTimestamp型を変換する方法について解説しています。最初に文字列を扱うString型と日時を扱うTimestamp型、それぞれの性質について説明します。次にString型からTimestamp型への変換方法について書き方と手順を確認しましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
監修してくれたメンター
nakamoto
JavaでString型とTimestamp型を変換する方法について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
JavaでString型とTimestamp型を変換することで、Timestamp型で用意した日付データを、文字列であるString型で扱えるようになります。
実務でも、Timestamp型のデータをString型に変換して、文字コンテンツとして利用するので、ぜひ学習してみてください。
目次
そもそもJavaについてよく分からないという方は、Javaとは何なのか解説した記事を読むとさらに理解が深まります。
今回は、Javaに関する内容だね!
どういう内容でしょうか?
String型とTimestamp型を変換する方法について詳しく説明していくね!
お願いします!
String型とは
まずは、String型について説明します。
String型というのは文字列を格納するための型です。
データそのものを保存するchar型やint型のような「プリミティブ型」と呼ばれる変数型とは少し異なり、「クラス型変数」と呼ばれるものです。
「プリミティブ型」とは、静的に型付けされたものです。
「クラス型変数」といのは、Javaでもともと用意されている「プリミティブ型」を使って定義した扱いやすい変数です。
String型変数は、ダブルクォーテーションで以下のように記述して定義します。
String 変数名 = "文字列"
Timestamp型とは
JavaにはTimestamp型という型があります。
Timestamp型はJavaプログラムにおいて、SQLという言語で使用するデータベースの日時として扱うことができます。
例えば、System.currentTimeMills()メソッドを使って、現在の時刻をTimestamp型で取得できます。
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
実際にSystem.out.println()を使い、出力も可能です。
System.out.println(timestamp);
出力結果は、現在の時刻がミリ秒まで取得できていることがわかります。
2019-12-23 19:54:10.704
String型からTimestamp型に変換する方法
ここでは、String型からTimestamp型に変換する方法を解説します。
サンプルコード
import java.util.*;
import java.sql.Timestamp; //Timestamp型をインポート
import java.text.SimpleDateFormat; //SimpleDateFormatクラスをインポート
import java.text.ParseException; //try-catch構文で使うもの
public class Main {
public static void main(String[] args) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
String str = "2019/12/12";
Date date = sdf.parse(str);
System.out.println(date);
}
}
実行結果
解説
今回は次の3ステップを通じて、String型からTimestamp型に変換します。
- SimpleDateFormatクラスを生成する
- SimpleDateFormatクラスを使って、文字列をString型からDate型に変換
- Date型からTimestamp型に変換
SimpleDateFormatクラスを生成する
今回は、書式設定のためのクラスであるSimpleDateFormatクラスを利用します。
SimpleDateFormatクラスというのは、日付や日時などのフォーマットを指定するためのクラスです。
使い方としては次のように、SimpleDateFormat()の引数で日付データを指定して、SimpleDateFormat型の変数に代入します。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
SimpleDateFormatクラスを使って、文字列をString型からDate型に変換
SimpleDateFormatクラスを使って、文字列をString型からDate型に変換するためには、好きな日付を変数strに代入後、parseメソッドを利用してDate型に変換します。
String型変数の値は、”年/月/日”の順番で指定します。
String str = "2019/12/12"; Date date = sdf.parse(str);
Date型からTimestamp型に変換
次のコードで、Date型からTimestamp型に変換します。
Timestamp ts = new Timestamp(date.getTime());
Timestamp型からString型に変換する方法
Timestamp型からString型に変換するためには、次のように実装を行います。
サンプルコード
Timestamp 変数1= new Timestamp(System.currentTimeMillis()); SimpleDateFormat 変数2 = new SimpleDateFormat("yyyy/MM/dd"); String str = 変数2.format(変数1);
解説
Timestamp型変数1に、現在時刻データを代入する。
SimpleDateFormat型変数2に、SimpleDateFormatで指定した文字列形式を代入する。
Timestamp型変数1を、SimpleDateFormat型変数2で指定した形式に変換する。
実際に書いてみよう
それでは実際に、String型とTimestamp型の変換を行ってみましょう。
適当な時刻をString型で表示して、それをTimestamp型に変換
まずは、適当な時刻をString型で表示して、それをTimestamp型に変換します。
サンプルコード
import java.sql.Timestamp; //Timestamp型をインポート import java.text.SimpleDateFormat; //SimpleDateFormatクラスをインポート import java.text.ParseException; //try-catch構文で使うもの public class Main{ public static void main(String[] args){ try{ //try文 Timestamp ts = new Timestamp(new SimpleDateFormat("yyyy/MM/dd").parse("2019/12/12").getTime()); System.out.println(ts); } catch (ParseException e){ //catch文 e.printStackTrace(); } } }
実行結果
2019-12-12 00:00:00.0
解説
きちんとTimestamp型のフォーマットになっていることから、String型をTimestamp型に変換できていることが確認できます。
現在時刻をTimestamp型で取得し、String型に変換
次に、現在時刻をTimestamp型で取得し、String型に変換します。
サンプルコード
import java.util.*; import java.sql.Timestamp; //Timestamp型をインポート import java.text.SimpleDateFormat; //SimpleDateFormatクラスをインポート import java.text.ParseException; //try-catch構文で使うもの public class Main { public static void main(String[] args) throws Exception { Timestamp currentTime = new Timestamp(System.currentTimeMillis()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); String str = sdf.format(currentTime); System.out.println(str); } }
実行結果
解説
表示される日付は実行したときのもので、2021/10/15と表示されます。
Timestamp型の、currentTimestampという変数を用意しておきます。
Timestamp currentTime = new Timestamp(System.currentTimeMillis());
そして、SimpleDateFormat型の変数sdfに、任意の日付をSimpleDateFormatクラスで生成しデータを代入します。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
最後に、currentTimestampをString型の文字列に変換しています。
String timeStr = sdf.format(currentTimestamp);
実行結果は2021/10/15のような、実行した年月日になります。
まとめ
この記事では、Timestamp型とString型について説明しました。
String型とchar型の違いについて詳しく知りたい方は、String型とchar型を変換する方法を参考にしていただくと良いですよ。
Timestamp型についての詳しい説明はTimestampクラスの使い方を参考にしていただくと良いです。
Timestamp型は、JavaでSQLデータベースの日時を扱うための変数型でした。
現在時刻をTimestamp型で取得したいときは、System.currentTimeMills()メソッドを使いました。
Timestamp型↔String型の変換はSimpleDateFormatを使いました。
Javaのプリミティブ型(データ型)の種類についてはこちらの記事を参考にしてみてください。
少し複雑に見えるかもしれませんが、やっていることはシンプルなので手を動かしながら頑張って理解してみてください。
内容が分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
Javaを学習中の方へ
これで解説は終了です、お疲れさまでした。
- つまずかず「効率的に」学びたい
- 副業や転職後の「現場で使える」知識やスキルを身につけたい
プログラミングを学習していて、このように思ったことはありませんか?
テックアカデミーのJavaコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。
合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、JavaやServletの技術を使ったWebアプリケーション開発を学べます。
まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。
時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!