Android получить текущую метку времени?

Я хочу получить текущую метку времени так : 1320917972

int time = (int) (System.currentTimeMillis());
Timestamp tsTemp = new Timestamp(time);
String ts =  tsTemp.toString();

9 ответов


решение :

Long tsLong = System.currentTimeMillis()/1000;
String ts = tsLong.toString();

из разработчиков блог:

System.currentTimeMillis() стандартные часы "стены" (время и дата) выражая миллисекунды с эпохи. Настенные часы могут быть установлены пользователем или телефонной сетью (см. setCurrentTimeMillis(длинный)), поэтому время может прыгать назад или вперед непредсказуемо. Эти часы следует использовать только тогда, когда важна переписка с реальными датами и временем, например, в календаре или приложении будильника. Измерения интервала или прошедшего времени следует использовать другие часы. Если вы используете System.currentTimeMillis(), подумайте о прослушивании ACTION_TIME_TICK, ACTION_TIME_CHANGED и ACTION_TIMEZONE_CHANGED намерение вещает, чтобы узнать, когда меняется время.


можно использовать SimpleDateFormat класс:

SimpleDateFormat s = new SimpleDateFormat("ddMMyyyyhhmmss");
String format = s.format(new Date());

1320917972 является меткой времени Unix, использующей количество секунд с 00:00: 00 UTC 1 января 1970 года. Вы можете использовать TimeUnit класс для преобразования единиц - от System.currentTimeMillis() секунд.

String timeStamp = String.valueOf(TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis()));

используйте метод ниже, чтобы получить текущую отметку времени. Мне это подходит.

/**
 * 
 * @return yyyy-MM-dd HH:mm:ss formate date as string
 */
public static String getCurrentTimeStamp(){
    try {

        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String currentDateTime = dateFormat.format(new Date()); // Find todays date

        return currentDateTime;
    } catch (Exception e) {
        e.printStackTrace();

        return null;
    }
}

Это просто использовать:

long millis = new Date().getTime();

Если вы хотите его в определенном формате, то вам нужно форматирование, как показано ниже

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

вот читаемый человеком штамп времени, который может использоваться в имени файла, на всякий случай, если кому-то нужно то же, что и мне:

package com.example.xyz;

import android.text.format.Time;

/**
 * Clock utility.
 */
public class Clock {

    /**
     * Get current time in human-readable form.
     * @return current time as a string.
     */
    public static String getNow() {
        Time now = new Time();
        now.setToNow();
        String sTime = now.format("%Y_%m_%d %T");
        return sTime;
    }
    /**
     * Get current time in human-readable form without spaces and special characters.
     * The returned value may be used to compose a file name.
     * @return current time as a string.
     */
    public static String getTimeStamp() {
        Time now = new Time();
        now.setToNow();
        String sTime = now.format("%Y_%m_%d_%H_%M_%S");
        return sTime;
    }

}

Я предлагаю использовать ответ хитов, но добавление формата локали, вот как Android Разработчики рекомендует:

try {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
        return dateFormat.format(new Date()); // Find todays date
    } catch (Exception e) {
        e.printStackTrace();

        return null;
    }

просто использовать

long millis = new Date().getTime();

чтобы получить текущее время в long millis