135

現在の日付と時刻をミリ秒単位で名前を付けてファイルを保存しようとしています。ファイルを読んでいる間、私は最新のものを読みたいです.Hereはコードです

 Calendar rightNow = Calendar.getInstance();

  long offset = rightNow.get(Calendar.ZONE_OFFSET) +  rightNow.get(Calendar.DST_OFFSET);

  String sinceMidnight = Long.toString((rightNow.getTimeInMillis() + offset) %  (24 * 60 * 60 * 1000));

  return sinceMidnight+"_"+Filename;
4

4 に答える 4

329

Javaを使用してこの機能を活用すると思います

long time= System.currentTimeMillis();

これは現在の時間をミリ秒モードで返します。これは確かにうまくいく

long time= System.currentTimeMillis();
android.util.Log.i("Time Class ", " Time value in millisecinds "+time);

これが上記の関数を使用した私のlogcatです

05-13 14:38:03.149: INFO/Time Class(301): Time value in millisecinds 1368436083157

ミリ秒の値に疑問がある場合は、ここを確認してください

EDIT :コード IST(+05:30) のデモに使用したタイムゾーン 、したがって、ログにmilliseconds記載されていることをログの時間と一致するようにチェックすると、システムのタイムゾーンに基づいて異なる値が得られる場合があります

編集:これは簡単なアプローチですが、タイムゾーンやその他の詳細が必要な場合は、これでは不十分だと思います Android APIサポートを使用したこのアプローチも参照してください

于 2013-05-13T08:51:34.253 に答える
24

問題は、System. currentTimeMillis();1970-01-01T00:00:00Z からのミリ秒数を返しますがnew Date()、現在の現地時間を返すことです。Calendar クラスからZONE_OFFSET と DST_OFFSETを追加すると、UTC の時刻が得られます。

Calendar rightNow = Calendar.getInstance();

// offset to add since we're not UTC

long offset = rightNow.get(Calendar.ZONE_OFFSET) +
    rightNow.get(Calendar.DST_OFFSET);

long sinceMidnight = (rightNow.getTimeInMillis() + offset) %
    (24 * 60 * 60 * 1000);

System.out.println(sinceMidnight + " milliseconds since midnight");
于 2013-05-13T07:38:15.353 に答える
3

これを試して

  Calendar c = Calendar.getInstance(); 
  int mseconds = c.get(Calendar.MILLISECOND)

代替案は

 Calendar rightNow = Calendar.getInstance();

 long offset = rightNow.get(Calendar.ZONE_OFFSET) +
        rightNow.get(Calendar.DST_OFFSET);
 long sinceMid = (rightNow.getTimeInMils() + offset) %
       (24 * 60 * 60 * 1000);

  System.out.println(sinceMid + " milliseconds since midnight");
于 2013-05-13T07:38:56.643 に答える
0
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
int mSec = calendar.get(Calendar.MILLISECOND);
于 2013-05-13T07:39:39.767 に答える