8

java.util.date のデフォルトのフォーマットは、「Mon May 27 11:46:15 IST 2013」のようなものです。これをタイムスタンプに変換し、同じ時刻と現在の時刻の差を秒単位で計算するにはどうすればよいですか?

java.util.Date date= new java.util.Date();
Timestamp ts_now = new Timestamp(date.getTime());

上記のコードは、現在のタイムスタンプを教えてくれます。ただし、上記の文字列のタイムスタンプを見つける方法はわかりませんでした。

4

5 に答える 5

12

Calendarクラスを使用して変換できますDate

public long getDifference()
{
    SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd kk:mm:ss z yyyy");
    Date d = sdf.parse("Mon May 27 11:46:15 IST 2013");

    Calendar c = Calendar.getInstance();
    c.setTime(d);
    long time = c.getTimeInMillis();
    long curr = System.currentTimeMillis();
    long diff = curr - time;    //Time difference in milliseconds
    return diff/1000;
}
于 2013-05-27T16:56:14.957 に答える
8

一番いいもの

String str_date=month+"-"+day+"-"+yr;
DateFormat formatter = new SimpleDateFormat("MM-dd-yyyy");
Date date = (Date)formatter.parse(str_date); 
long output=date.getTime()/1000L;
String str=Long.toString(output);
long timestamp = Long.parseLong(str) * 1000;
于 2014-06-23T14:47:52.050 に答える
0

DateFormat(java.text.*) を使用して日付を解析できます。

DateFormat df = new SimpleDateFormat("EEE MMM dd kk:mm:ss z yyyy", Locale.ENGLISH);
Date d = df.parse("Mon May 27 11:46:15 IST 2013")

自分のロケールに合わせてロケールを変更する必要があります (これにより、10:46:15 になります)。次に、同じコードを使用してタイムスタンプに変換できます。

于 2013-05-27T16:57:08.190 に答える
0

使用できます

  long startTime = date.getTime() * 1000000;;
  long estimatedTime = System.nanoTime() - startTime;

nanoで時間を取得します。

Java ドキュメント

于 2013-05-27T16:46:35.530 に答える