2012-04-28 2 views
1

У меня есть этот код, скопированный из одного из вопросов из SO:Java время системы

public static String getCurrentTimeStamp() { 
    SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    Date now = new Date(); 
    String strDate = sdfDate.format(now); 
    return strDate; 
} 

Я хочу, чтобы получить только системное время, а не дата. Затем я должен изменить вторую строку кода на:

SimpleDateFormat sdfDate = new SimpleDateFormat(" HH:mm:ss") ; 

Затем DATE() должно получить текущее время. Очистите до этого момента, но я не могу понять используемую функцию format(). Я имею в виду, мы не можем вывести переменную now вместо strdate? Это просто потому, что возвращаемый тип функции getCurrentTimeStamp() - это строка?

Просьба уточнить, и если есть какой-либо другой простой и один строковый код для получения системного времени, поделитесь им.

+0

http://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html вы должны проверить привязку api –

ответ

7

Я имею в виду, что мы просто выводим переменную теперь вместо strdate.

Ну вы могли вернуться now.toString() - но это будет использовать формат, который Date.toString() происходит выбор, в то время как вы хотите определенный формат. Точка объекта SimpleDateFormat в этом случае должна преобразовать Date (который является точкой во времени, без ссылки на какой-либо конкретный календарь или часовой пояс) в String, применяя соответствующий часовой пояс, систему календаря и текстовый формат (в ваш случай HH:mm:ss).

Вы все еще можете упростить метод несколько, хотя, удаляя локальные переменные (каждый из которых используется только один раз):

public static String getCurrentTimeStamp() { 
    return new SimpleDateFormat("HH:mm:ss").format(new Date()); 
} 

Или, может быть, вы найдете его более удобным для чтения, чтобы сохранить переменную даты формат, а не дата и возвращаемое значение:

public static String getCurrentTimeStamp() { 
    DateFormat format = new SimpleDateFormat("HH:mm:ss"); 
    return format.format(new Date()); 
} 

Лично я бы рекомендовал использовать Joda Time вместо этого, заметьте - это гораздо лучше, дата/время API, и его отформатированный потокобезопасны, чтобы вы могли легко держите ссылку на single форматирование объекта.

+0

. здорово !! .. и я да, я наткнулся на тебя, ответ на время Джоды в другом посте. благодаря – kushalvm

0

вы можете назвать эту линию в любое время

 
Date now = new Date(); 

Ныне переменная будет содержать текущую метку времени Функция формат просто генерирует строку из этой временной метки

также взглянуть на класс Calendar (Calendar.getInstance())

2
public static String getCurrentTimeStampwithTimeOnly() { 
    return new SimpleDateFormat("HH:mm:ss").format(new Date()); 
} 

Помогает вам это сделать.

Смежные вопросы