文字型の日付をタイムスタンプに変換する
SimpleDateFormat ではなく、Apache Commons の lang ライブラリを使う。
import java.sql.Timestamp; import java.text.ParseException; import org.apache.commons.lang.time.DateUtils; public class StringDatetimeToTimestamp { public static void main(String[] args) { // UTC 1970-01-01 00:00:00 に JST 9時間をプラスした時刻をローカルの現在時刻とする String targetDatetime = "1970-01-01 09:00:00"; try { // 文字型の日時をパースして UTC 基準の UNIX タイムスタンプに変換する Timestamp ts = new Timestamp(DateUtils.parseDate(targetDatetime, new String[] {"yyyy-MM-dd HH:mm:ss"}).getTime()); // Java のタイムスタンプはミリ秒単位で返すので、秒単位に変換する long timestamp = ts.getTime()/1000; // 0 (秒)を返す System.out.println(timestamp); } catch (ParseException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } } }