2015-07-29 11 views
2

Я хочу, чтобы моя программа Java принимала системный формат даты.получить системную дату в том же формате, что и система

Ex: при изменении формата даты в системе от mm-dd-yy до yyyy-MM-dd. Я хочу, чтобы моя программа java вытащила короткий формат даты из системы и отобразила в моей программе.

Снова, если я изменю системный формат на M/D/YY, моя программа Java отобразит это.

Я попробовал несколько вариантов, как,

Calendar cal = Calendar.getInstance(); 
SimpleDateFormat sdf = new SimpleDateFormat(); 
System.out.println(System.currentTimeMillis()); 
System.out.println(cal.getTime()); 
System.out.println(sdf.format(cal.getTime())); 

это всегда печатает mm/dd/yy несмотр иметь формат yyyy-mm-dd в системе.

Любая помощь будет оценена по достоинству.

+0

Я не уверен, что это возможно, Java использует локали информацию для принятия решения о том, какой формат он должен использовать для 'DateFormat', он не использует какой-либо из конфигурации системы, которая было бы хорошо – MadProgrammer

ответ

0
DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyy"); 
Date date = new Date(); 

, а затем просто распечатать

dateFormat.format(date); 
+2

Это не имеет никакого отношения к заданному вопросу. Вопрос заключался в том, как использовать настроенный системный формат даты, а не как DateFormat. –

3

Использование SimpleDateFormat.toLocalizedPattern()

Из Java Docs:

Возвращает локализованную строку шаблона, описывающее этот формат даты.

+0

Это всегда возвращается, M/d/yy h: mm a date = 7/29/15 12:01 PM Но мой системный формат - yyyy-MM-dd – user3754993

+0

Вы имеете в виду формат операционной системы? [this] (http://stackoverflow.com/questions/6711925/how-can-i-so-date-and-time-formatting-in-java-that-respects-the-users-os-settin) вопрос может помоги в этом. –

+0

Я пробовал возможные варианты, указанные в этой ссылке, но не работал должным образом. – user3754993

0
public static String getDateFromLongformat(long dateInLong) { 

    Date date = new Date(dateInLong); 
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); 
    String dateText = df.format(date); 

    return dateText; 
} 
+1

Объясните, что делает ваш код и почему он решает проблему. – Peanut

0

Мы использовали следующие подходы для этого

  1. Определить часовой пояс системы
  2. имеет отображение DateFormat к предпочтительной временной зоне
  3. использовать DateFormat из отображения для отображения Дата.

Шаг 2 был в основном файлом свойств, в котором мы отображали часовой пояс и предпочтительный формат даты.

0

Вы не можете получить формат даты, используемый в вашей операционной системе, используя Java, но вы можете отформатировать дату на основе языкового стандарта, используя класс SimpleDateFormat.

См Doc: http://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html

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