-1

AndroidでYYYYMMDD-HHMMSSMillisecondsの形式で時間文字列を取得しようとしています

例: 20130312-1723437520 (2013 年 3 月 12 日、17 時間 23 分 43 秒 7520 ミリ秒)

Time now = new Time();
now.setToNow();
String snapshotTime = now.format("yyyyMMdd-HHmmss");

まず、上記のコードは正しく動作しません。snapshotTime常にフォーマット文字列自体に設定されます。

第二に、Androidのドキュメントによると、ミリ秒を記録する方法はありません。

どうすればこれを達成できますか?

4

5 に答える 5

5

SimpleDateFormatクラスを参照してください。Date オブジェクトを必要な形式にフォーマットできます (大文字の S はミリ秒になります)。

SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date now = new Date();
String str = fmt.format(now);

とはいえ、通常は Joda Time を使用することをお勧めします (Proguard は使用しないコードを取り除きます)。

于 2013-03-11T16:06:05.133 に答える
2

Android ドキュメントに記載されているように、strftime 形式を使用する必要があります。

Time now = new Time();
now.setToNow();
String snapshotTime = now.format("%Y%m%d-%H%M%S");

本当にミリ秒単位で使いたい場合は、SimpleDateFormat をお勧めします。

于 2013-03-11T16:09:25.340 に答える
1

からミリ秒単位のUNIXタイムスタンプとして時間を取得してみてください

long currentTime = System.currentTimeMillis();

または時間をミリ秒に変換します。

long currentTime = now.toMillis(true);

次に、これを希望の日付に変換できます。

Time now = new Time();
now.set(currentTime);
String snapshotTime = now.format("%Y%m%d-%H%M%S")+""+(currentTime%1000);

テストはしていませんが、うまくいくことを願っています:)

于 2013-03-11T16:23:31.417 に答える
0

この小さなライブラリを使用することをお勧めします。日付を扱うときに非常に役立ちます。DateTimeFormatter クラスを見てください。

代わりに、Calendar と SimpleDateFormater を使用します (もちろん、書式文字列を調整する必要があります。記号の説明については、こちらを参照してください)。

Calendar c = new GregorianCalendar();
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy-SSSS");
String date = sdf.format(c.getTime());
于 2013-03-11T16:00:37.840 に答える
0

これを試すことができます:

public static String format() {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd-HHmmssSSS");
        Date now = new Date();
        return simpleDateFormat.format(now);
    }
于 2013-03-11T16:09:20.677 に答える