0

今日の日付のエポック時間を取得しようとしています。しかしParseException、フォーマットの日付に固執しました。

スニペット:-

SimpleDateFormat df = new SimpleDateFormat("dd/mm/yyyy");
String str = df.format(Calendar.getInstance().getTime());
Date date = df.parse(str);
long epoch = date.getTime();
Log.i("Epoch" , String,valueOf(epoch));

今日のエポック時間を取得するにはどうすればよいですか?

4

2 に答える 2

3

1970 年 1 月 1 日 UTC からのミリ秒単位の現在時刻に関心がある場合は、System.currentTimeMillis()see javadocを使用してください。プロセスで文字列をフォーマットして解析する必要はありません。

そこから UNIX エポック タイムスタンプを取得するには、1000 で割って秒に変換します。

コメントとあなた自身の回答に基づいて、あるタイムゾーンのエポックタイムスタンプに興味があるようです。そのためにa を使用しCalendarます。ここでも文字列をフォーマットして解析する必要はありません。

Calendar c = Calendar.getInstance(); // today
c.setTimeZone(TimeZone.getTimeZone("UTC")); // comment out for local system current timezone
c.set(Calendar.HOUR, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
c.set(Calendar.AM_PM, Calendar.AM);
long millistamp = c.getTimeInMillis();
long unixstamp = millistamp / 1000;
于 2014-03-06T10:38:55.270 に答える
1

今日のエポック時間を取得するには:-

 SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
 String _date = df.format(Calendar.getInstance().getTime());
 Long notificationID = strDateToUnixTimestamp(_date); //Gives Today Epoch Time.

 private static long strDateToUnixTimestamp(String dt) {
    DateFormat formatter;
    Date date = null;
    long unixtime;
    formatter = new SimpleDateFormat("dd/MM/yy");
    try {
        date = formatter.parse(dt);
    } catch (ParseException ex) {

        ex.printStackTrace();
    }
    unixtime = date.getTime() / 1000L;
    return unixtime;
}

ミリ秒単位の現在の時刻とミリ秒単位の今日の時刻の違いを確認するには [Date 00:00:00]。

Log.i("Notification ID", String.valueOf(notificationID) + ": "+ System.currentTimeMillis()/1000);

SOを投稿すると、数時間グーグルで検索したところ、探していたものが見つかりました。他の人に役立つことを願っています。

于 2014-03-06T10:38:16.563 に答える