2011-11-18 5 views
4

私はかなり厄介な問題を抱えています。私は現在の日付/時刻を取得してファイル名に挿入したいが、私の人生では動作させることができない。 13::57.tar.gzAndroidは日付を取得してファイル名に挿入します

は、私が2011年11月18日12時13分57秒として時間を取得し、私のファイル名

ファイル名-2011-11-18-12をにそれを挿入したいです

私はSimpleDateFormatなどを試しましたが、動作しません!

(私はEclipseのインディゴに書いています)

+4

これは、現在の日付を取得するためのuを助けることを願っと時間、それは無効なファイル名になります?何かエラーが出ていますか? – Hiral

+0

私は ファイル名のようにそれを試してみてください ...エラーを取得していない私は、ボタンを押すと、それだけで任意のファイルを作成しないでください - 。「+日付+」tar.gz形式 i「は+日付+」それを削除した場合問題なくファイルを作成します。 –

+0

あなたはfilename_2011_11_18_12_13_57.tar.gzのようなファイル名を作って、無効なファイル名のみを使用していなければなりません。それでは問題は生じません。 – Hiral

答えて

19

ますこれを使用できます:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss", Locale.US); 
Date now = new Date(); 
String fileName = formatter.format(now) + ".tar.gz"; 

また、どこかでエラーが発生している可能性があります。これは問題を見つけるのに大いに役立ちます。あなたは空のcatchブロックを持っていないことを確認してください:

catch (Exception e) {} 
+0

+1、素敵です。シンプルなソリューション。 – user370305

+0

Eclipseを使用すると、date()が定義されておらず、一致する引数が必要であることがわかります... 日付を印刷することはできますが、日付は01_01_1970です。 –

+0

次に、 'import java.util.Date; ' – Caner

0

使用この希望日時を取得するには:

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
Date date = new Date(); 
String timeStamp = dateFormat.format(date.toLocaleString()); 

を、あなたは、このようなあなたのファイルを作成することができます。

FileOutputStream out = context.openFileOutput(timeStamp , context.MODE_PRIVATE); 
out.write(string.getBytes()); 
out.close(); 
+0

-1 'dateformat'は作成されましたが、どこにも使われませんでしたか?なぜ文字列を別の文字列にコピーするのですか?: 'string lastSyncTime = timeStamp;' – Caner

+0

私はあるアプリケーションで使用していたコードをコピーして貼り付けます。そのため、 –

+0

でも、 'dateFormat'はありません。どこにも使われていたので、取り除くことができました。そしてなぜあなたは私に-1を与えましたか? – Caner

-1
+0

これは、現在の日付を取得するためのひどい方法です。この目的のためにすでにJava関数があります。プラスポスターが直面している問題は、日付を取得していないが、ファイルを作成しています。 – Caner

+0

私はこれがファイルに保存されないようにするために上記のことを明確に述べています@ LAS_VEGAS –

+0

残念ですが、これは現在の日付を取得するにはまだ非常に悪い方法だと思います。現在の日付を2行のコードで文字列として取得できるためです。あなたのロジックには、見つけにくいどこかのバグがあるかもしれません。 – Caner

関連する問題