Unix 24 часа
Unix 24 часа
получаю Unix timeStamp так
long timeStamp = System.currentTimeMillis() / 1000L;
но там получаю 12 часовое время, а мне нужно 24 часовое..
как это сделать ?
пример: я прогу запускаю в 13:05:22 а он мне выдает 01:05:22 в Unix формате..
long timeStamp = System.currentTimeMillis() / 1000L;
но там получаю 12 часовое время, а мне нужно 24 часовое..
как это сделать ?
пример: я прогу запускаю в 13:05:22 а он мне выдает 01:05:22 в Unix формате..
Re: Unix 24 часа
Это просто число ms прошедших с 01.01.1970
Все зависит от форматирования при выводе.
Если для форматирования используется SimpleDateFormat, то "h" - выводит часы в 12-ти часовом формате, а "H" в 24-м
new SimpleDateFormat("h:mm:ss a") - 12-ти часовой формат с указанием AM/PM
new SimpleDateFormat("H:mm:ss") - 24-х часовой формат.
Все зависит от форматирования при выводе.
Если для форматирования используется SimpleDateFormat, то "h" - выводит часы в 12-ти часовом формате, а "H" в 24-м
new SimpleDateFormat("h:mm:ss a") - 12-ти часовой формат с указанием AM/PM
new SimpleDateFormat("H:mm:ss") - 24-х часовой формат.
Re: Unix 24 часа
я уже запарелся с SimpleDateFormat не как не могу нормально сделать.Viewer писал(а):Это просто число ms прошедших с 01.01.1970
Все зависит от форматирования при выводе.
Если для форматирования используется SimpleDateFormat, то "h" - выводит часы в 12-ти часовом формате, а "H" в 24-м
new SimpleDateFormat("h:mm:ss a") - 12-ти часовой формат с указанием AM/PM
new SimpleDateFormat("H:mm:ss") - 24-х часовой формат.
и так пробовал вертеть и сяк
но все равно не получается получить текущее время в Unix 24 формате..
Вот в итоге до чего дошел (но все равно не правильно ( )
Код: Выделить всё
@Override
public void onCreate() {
super.onCreate();
try {
DateFormat format = new SimpleDateFormat("HH:mm:ss dd:MM:yyyy");
Date date = new Date();
String temp2 = format.format(date);
Date temp3;
temp3 = format.parse(temp2);
Calendar calendar = Calendar.getInstance();
calendar.setTime(temp3); // assigns calendar to given date
endtime = componentTimeToTimestamp(
calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH),
calendar.get(Calendar.HOUR),
calendar.get(Calendar.MINUTE));//ystem.currentTimeMillis() / 1000L;// DateFormat.format("hh:mm:ss dd-MM-yyyy",new Date());
begintime = componentTimeToTimestamp(
calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH)-1,
calendar.get(Calendar.HOUR),
calendar.get(Calendar.MINUTE));//ystem.currentTimeMillis() / 1000L;// DateFormat.format("hh:mm:ss dd-MM-yyyy",new Date());
} catch (java.text.ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public long componentTimeToTimestamp(int year, int month, int day, int hour, int minute) {
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, month);
c.set(Calendar.DAY_OF_MONTH, day);
c.set(Calendar.HOUR, hour);
c.set(Calendar.MINUTE, minute);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
return (long) (c.getTimeInMillis() / 1000L);
}
Re: Unix 24 часа
[syntax=java]SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss dd:MM:yyyy");
Date date = new Date();
String temp2 = format.format(date);[/syntax]
Этого разве не достаточно?
temp2 это и есть строка с текущей датой и временем в указанном формате
А DateFormat это формат даты и времени для текущей локализации (если у вас в текущей локализации использован 12-ти часовой формат, то он и будет выводиться.)
Date date = new Date();
String temp2 = format.format(date);[/syntax]
Этого разве не достаточно?
temp2 это и есть строка с текущей датой и временем в указанном формате
А DateFormat это формат даты и времени для текущей локализации (если у вас в текущей локализации использован 12-ти часовой формат, то он и будет выводиться.)
Re: Unix 24 часа
Еще обнаружил что
при выполнении след. кода
time1 = TimePicker 24 часовой
вот если устанавливаю время например 01:00:00 мой код в Unix конвертирует его как 13:00:00 в чем может быть дело ?
при выполнении след. кода
Код: Выделить всё
appState.begintime = componentTimeToTimestamp(
date1.getYear(),date1.getMonth(),
date1.getDayOfMonth(),time1.getCurrentHour(),
time1.getCurrentMinute());
Log.i("Times ", time1.getCurrentHour().toString()
);
public long componentTimeToTimestamp(int year, int month, int day, int hour, int minute) {
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, month);
c.set(Calendar.DAY_OF_MONTH, day);
c.set(Calendar.HOUR, hour);
c.set(Calendar.MINUTE, minute);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
return (long) (c.getTimeInMillis() / 1000L);
}
вот если устанавливаю время например 01:00:00 мой код в Unix конвертирует его как 13:00:00 в чем может быть дело ?
Re: Unix 24 часа
Просто нужно внимательно проверить код и не путать SimpleDateFormat и DateFormat (у вас там все в кучу, как я понял)
Как укажете в SimpleDateFormat так и будет выводиться.
Как укажете в SimpleDateFormat так и будет выводиться.
Re: Unix 24 часа
Спасибо !Viewer писал(а):Просто нужно внимательно проверить код и не путать SimpleDateFormat и DateFormat (у вас там все в кучу, как я понял)
Как укажете в SimpleDateFormat так и будет выводиться.
вот так у меня получилось то что мне нужно
Код: Выделить всё
public void onClick(View v)
{
SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
Time time = new Time();
time.set(00, time1.getCurrentMinute(), time1.getCurrentHour(), date1.getDayOfMonth(),date1.getMonth() ,date1.getYear());
try {
Date hh = dateFormat.parse(time.format("%d.%m.%Y %H:%M:%S"));
Log.i("date ", Long.toString(hh.getTime() / 1000L));
appState.begintime = hh.getTime() / 1000L;
time.set(00, time2.getCurrentMinute(), time2.getCurrentHour(), date2.getDayOfMonth(),date2.getMonth() ,date2.getYear());
hh = dateFormat.parse(time.format("%d.%m.%Y %H:%M:%S"));
appState.endtime =hh.getTime() / 1000L;
Log.i("date ", Long.toString(hh.getTime() / 1000L));
} catch (ParseException e) {
e.printStackTrace();
}
Re: Unix 24 часа
Здравствуйте. У меня хранится дата в String в формате "dd-M-yyyy". Как ее переконвертировать в long и сделать в миллисекундах, чтоб можно было эту дату отправить в функцию setMaxDate?
Спасибо.
Спасибо.
Re: Unix 24 часа
First url from GoogleNastasia писал(а):Здравствуйте. У меня хранится дата в String в формате "dd-M-yyyy". Как ее переконвертировать в long и сделать в миллисекундах, чтоб можно было эту дату отправить в функцию setMaxDate?
Спасибо.
http://stackoverflow.com/questions/1247 ... illseconds
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена