• ベストアンサー

日付のフォーマット変換について

はじめまして。 日付フォーマット変換について質問です。 「Tue Sep 16 04:06:38 JST 2003」 上記のようなStringの値を yyyy/mm/dd hh:mm:ssのように 変換したいのですが、どのような方法を とれば良いのかわからず困っております。 よろしくお願い致します。

  • st33
  • お礼率43% (19/44)
  • Java
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
noname#30871
noname#30871
回答No.1

 java.text.DateFormatや、そのサブクラスであるjava.text.SimpleDateFormatを使うと、Stringとjava.util.Dateの間の変換ができます。 import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; SimpleDateFormat format1 = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.US); SimpleDateFormat format2 = new SimpleDateFormat("yyyy/mm/dd HH:mm:ss"); try { Date parsedDate = format1.parse("Tue Sep 16 04:06:38 JST 2003"); System.out.println(format2.format(parsedDate)); } catch (ParseException e) { System.err.println(e.getMessage()); }

参考URL:
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/text/package-summary.html
st33
質問者

お礼

御回答有難うございました。 大変助かりました。

関連するQ&A

  • 秒を日付に変換

    秒を日付に変換する関数として、 以下のものを見つけました。 =TEXT(a1/86400+("1970/1/2"*1-"1900/1/1"*1+"9:0"*1),"yyyy/mm/dd hh:mm:ss") この関数で変換するとこのようになります。 1384664725 2013/11/17 14:05:25 JST ユニックスタイムといって1970年1月1日 00:00 UTCが起点になっているそうですが、 1601年1月1日 00:00 UTC を起点に計算する関数はどうやって作れば良いのでしょうか? 130291350118733 が 2013/11/17 13:10 JST になります。

  • C#による日付のフォーマット変換について

    初めまして。 大学にてC#を勉強中の身なのですが、文字列の日付フォーマット 【YYYY/MM/DD → DD-MMM-YY】 への変換方法が分からず困っています。 よろしければどなたかご教授して頂けないでしょうか? ※このような形に変換を希望しています string型 【2000/01/01】 → string型 【01-Jan-00】

  • javaのCalendar型を日付型に変換したい

    Calendar型の変数をフォーマット付き("yyyy/MM/dd hh:ss")に変換したいのですが上手い方法が見つかりませんでした。 初心者でも無いのですが、変換の方法があったらご教示願います。 よろしくお願いします。

    • ベストアンサー
    • Java
  • 日付形式の変換

    はじめまして Perlで日付形式の変換をしたいと思っています。 RFC1123形式(2 Mar 2006 04:28:25 -0800)から yyyy/mm/dd hh:mm:ssの形式に変換したいのです。 色々と調べましたが、適当なヒントがあるところがありません でした。 どうぞ、関連サイトでも構いませんので、ご回答お願いいたします。

    • ベストアンサー
    • Perl
  • 日付型→文字列

    SQLServer2005の環境にて、 日付型の項目(YYYY/MM/DD HH:MM:SS)から日付のみを抽出したい場合、 現在SUBSTRING(CONVERT(VARCHAR,AA),1,10) と変換を行っているのですが、結果が「MM DD YYYY」となってしまいます。 「YYYY/MM/DD」の形式で取得するにはどのようなSQL文にすればよろしいのでしょうか。

  • 日付や時刻の"01"を" 1"に変換したいです。

    下記のような問題で悩んでいます。何かよいアイディアがありましたら教えて下さい。 【要件】 ・SimpleDateFormatで指定された書式の文字列にした後、年月日時分秒ミリ秒の"01"~"09"を" 1"~" 9"のように前0を半角スペースに一括変換したい(年は書式がyy形式の場合のみ)。 ・SimpleDateFormatへの書式はエラーが起きない限りどんなものでも受け入れる(通常、書くわけがない書式についても)。 例) "yyyy/MM/dd HH:mm:ss:SSS" "'yyyy/MM/dd HH:mm:ss:SSS形式:'yyyy/MM/dd HH:mm:ss:SSS"  ※''の中にあるMMはテキストなので英字のまま。 "yyyy/MMMMMMMMMMMMMMMMMMMM/dd HH:mm:ss:SSS"  ※Mの数は不明 "yyyy/MM/dd MM MM HH:mm:ss:SSS"  ※月の表示指定が複数 引数 :日付(yyyyMMddHHmmssSSS形式), SimpleDateFormatへの書式 戻り値:SimpleDateFormatで変換後に"01"~"09"を" 1"~" 9"にした文字列 自分なりの検討案としては下記になります。 a.引数の書式をそのままSimpleDateFormatに引き渡ずに、一部修正してから呼び出す。 例)"yyyy/MM/dd HH:mm:ss:SSS"→yyyy/_M/_d _H:_m:_s:__S" ※"_"は半角スペースです。 実際はMやdなどが2桁になる場合は変換しません。 かなりごりごり200行ぐらい試しに書いたのですが、対応できないケースが出てきてその都度エンドレス状態です。 ちょっとこのまま実装するわけにいきません。いつバグがでるか・・・。 b.SimpleDateFormatで変換後に年月日時分秒ミリ秒に該当する箇所に"01"~"09"があったら置換する。  引数の書式からMMやddのindexを保持して、SimpleDateFormatで変換後の該当indexに置換。 例) 書式:"yyyy/MM/dd_HH:mm:ss:SSS" 日付:"20090101010101001" "2009/01/01_01:01:01:001"→"2009/_1/_1__1:_1:_1:__1" ※"_"は半角スペースです。 但し前提として、書式とSimpleDateFormatで変換後の文字列が1対1になっている必要があります。 単純な例ですと 書式:"yyyy/MMMM/dd HH:mm:ss:SSS" 書式のddは11~12桁目ですが、SimpleDateFormatで変換後は下記のようにインデックスがずれます。 "2009/1月/01 01:01:01:001" "2009/12月/01 01:01:01:001" もしかしたら下記のような感じで吸収できるのかもしれませんが、ちょっと個人的に出来そうに思えませんでした。 月が1桁 かつ 書式が"M"の場合 月が1桁 かつ 書式が"MM"の場合 月が1桁 かつ 書式が"MMM"の場合 月が1桁 かつ 書式が"MMMM"の場合 月が1桁 かつ 書式が"Mxn"の場合 月が2桁 かつ 書式が"M"の場合 月が2桁 かつ 書式が"MM"の場合 月が2桁 かつ 書式が"MMM"の場合 月が2桁 かつ 書式が"MMMM"の場合 月が2桁 かつ 書式が"Mxn"の場合 ここ1,2週間ほど煮詰まっています。どなたかアドバイス頂けると助かります。 自分的なネックは書式が限りなくフリー形式なところです。

    • ベストアンサー
    • Java
  • 日付フォーマットの変換についての質問。

    こんにちは。宜しくお願いします。 現在、String型で受け取った日付の文字列をData型にして、さらに違う日付フォーマットにするプログラミングを書いています。 具体的には、 String型の"Wed, 07 Dec 2005 00:00:00 +0900"を、 Date型の"Wed, 07 Dec 2005 00:00:00 +0900"に変更して、 同じくDate型の、"2005-12-07T00:00:00+09:00"にしたいのです。 今躓いてる点は、String型の日付をDate型に変換する所で、エラーメッセージが、” Unparseable date: "Wed, 07 Dec 2005 00:00:00 +0900"”となっており、コード修正しても上手くいきません。 現時点でのコードを記述しますので、お時間があるときにご教授お願いします。 ---- import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /** * 時間のフォーマット変換テスト。 * */ public class testConvertTime { public static void main(String[] args) throws ParseException { String strPreTime = "Wed, 07 Dec 2005 00:00:00 +0900"; //2005-12-07T03:00:12+09:00 SimpleDateFormat sdf = new SimpleDateFormat(); //日付の出力形式を設定 sdf.applyPattern( "EEE, dd MMM yyyy HH:mm:ss Z" ); //指定したフォーマットで日付が返される Date dat = sdf.parse(strPreTime); //java.util.Date dat = sdf.parse(strPreTime); } }

    • ベストアンサー
    • Java
  • SQL*Loader  フォーマット変換について

    SQL*Loaderの制御ファイル内で、 以下のような日付データを変換するにはどうしたらよいでしょうか? ・2010-12-06 00:00:00.000 以前は'2010-12-06 00:00:00'の形式だったので "to_char(to_date(:DENPYO_DATE,'YYYY-MM-DD HH24:MI:SS'),'YYYYMMDD')" のようにして変換が可能だったのですが、仕様変更がありましてこれに対応しなければいけなくなりました。 ちなみに安易な考えで以下のようにしたのですがさすがにだめでした... "to_char(to_date(:DENPYO_DATE,'YYYY-MM-DD HH24:MI:SS.000'),'YYYYMMDD')" 方法をご存知の方がいれば是非、ご教示いただきたく存じます。 よろしくお願いいたします。

  • Stringのフォーマットの変換方法(Java)

    Java実行時の引数として渡した14桁の数値(文字列)を、 ----- yyyy-mm-dd hh:mm:ss ----- の形式にフォーマット変換したいです。 (日時のように書いてますが、型はDateやTimestampではなくStringのままでもOK) 文字列をsubstringメソッドで区切って、 その後に「-」や「:」と+で文字列連結させる方法も考えたのですが、 そのようにせずにもう少しシンプルに変換する方法はありませんでしょうか?

    • ベストアンサー
    • Java
  • VBA:日付をシリアル値にできるの関数教えてください。

    VBAにより、あるセルに"yyyy / mm / dd hh:mm:ss"のフォーマットで日付を記入しました。それを手動で書式を標準にすると例えばシリアル値38148.4768981481になります。これをVBA上でできる関数を知りたいです。つまり、日付をシリアル値にできるVBAの関数を教えて頂きたいです。宜しくお願いいたします。

専門家に質問してみよう