Android получить текущую метку времени?
Я хочу получить текущую метку времени так : 1320917972
int time = (int) (System.currentTimeMillis());
Timestamp tsTemp = new Timestamp(time);
String ts = tsTemp.toString();
9 ответов
из разработчиков блог:
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;
}