#java #android #api #android-studio #timestamp
#java #Android #API #android-studio #временная метка
Вопрос:
Я хочу получить текущую временную метку в этом ГГГГ-ММ-DDTHHmmssZ.Например; Ожидаемое значение: 2016-01-01 00:00:00. Я пробовал различные методы, один из них приведен ниже :
String timeStamp = new SimpleDateFormat("YYYY-MM-DD'T'HH:mm:ss'Z'").format(new Timestamp(System.currentTimeMillis()));
Тем не менее, я сталкиваюсь с ошибкой (не получил ожидаемый результат, который равен 2016-01-01 00:00:00), любая помощь будет признательна, спасибо.
Комментарии:
1. «Я все еще сталкиваюсь с ошибкой» — пожалуйста, отредактируйте свой вопрос и подробно объясните, что такое «ошибка». Кроме того, AFAIK,
SimpleDateFormat
не имеетformat()
метода, который принимаетTimestamp
.2. Отредактировано @CommonsWare
3. Ну, это не 1 января 2016 года. Где я нахожусь, сейчас 6 октября 2016 года. Следовательно, вы не получите
2016-01-01 00:00:00
, если вы не изменили свое устройство / эмулятор, чтобы установить дату на 1 января 2016 года. И00:00:00
часть будет меняться в зависимости от времени выполнения кода.4. Конечно, это только для справки
Ответ №1:
просто используйте это:
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-yyyy-hh-mm-ss");
String format = simpleDateFormat.format(new Date());
Log.d("MainActivity", "Current Timestamp: " format);
просто измените формат, в котором вы хотите получить текущую временную метку.
Спасибо. 🙂
Ответ №2:
Ваш вопрос неоднозначен, но, насколько я понимаю,:
String timeStamp = new SimpleDateFormat("YYYY-MM-DD'T'HH:mm:ss'Z'")
Вы должны установить часовой пояс, например:
private static SimpleDateFormat df
= new SimpleDateFormat( "yyyy-MM-dd'T'hh:mm:ssz")
df.setTimeZone(TimeZone.getTimeZone("GMT"));
или
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US);
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(sdf.format(new Date())); //-prints-> 2015-01-22T03:23:26Z
Если вы хотите узнать больше. пожалуйста, обратитесь к: