2009-04-06 3 views
1

Я сохраняю значения и значения даты в хранилище записей. Я мое поле даты установить так:Почему мой J2ME DateField не отображает правильную дату?

StartDate = new DateField("Start Date ", DateField.DATE); 
       cal1 = Calendar.getInstance(); 
       cal1.set(Calendar.YEAR, 2009); 
       cal1.set(Calendar.MONTH, 0); 
       cal1.set(Calendar.DAY_OF_MONTH, 1); 
       StartDate.setDate(cal1.getTime()); 

и я сохранить дату в виде строки следующим образом: (. Я сократил код)

strStartDate = cal1.get(cal1.DAY_OF_MONTH) + "/" + 
       (cal1.get(cal1.MONTH) + 1) + "/" + 
       cal1.get(cal1.YEAR); 
String detailsToAdd = strStartDate 

Теперь я хочу, чтобы иметь возможность для редактирования даты на следующем этапе. Однако для этого мне нужен код. До сих пор у меня есть:

EStartDate = new DateField("Start Date ", DateField.DATE); 

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

В основном я должен иметь возможность показывать атрибут даты выбранной записи. В настоящее время отображается другая информация. Мне просто нужно показать правильную дату. Когда я запускаю программу, в поле даты указывается <date>.

Любая помощь будет хорошо

+0

Название для этого вопроса должно быть более конкретным чем «кто-то может помочь», чтобы люди могли побеспокоиться. –

+0

Это первый вопрос пользователя. Быть нежным. Я исправил заголовок. – Eddie

ответ

0

Может быть, что локаль вы работаете в не принимает даты с / в качестве разделителя? Я уверен, что существует независимый от локали способ компоновки даты без использования конкатенации строк, как в вашем примере.

1

Ваш первый код, как следует правильно:

  StartDate = new DateField("Start Date ", DateField.DATE); 
      cal1 = Calendar.getInstance(); 
      cal1.set(Calendar.YEAR, 2009); 
      cal1.set(Calendar.MONTH, 0); 
      cal1.set(Calendar.DAY_OF_MONTH, 1); 
      StartDate.setDate(cal1.getTime()); 

Но для второго, вы не можете сохранить дату в строку непосредственно. Вы должны преобразовать его в строку, как это:

  String detailsToAdd =strStartDate.toString(); 
0

Фрагмент кода вы предоставили не использует setDate(Date). Если ваш фактический код не использует его, то <date> в поле правильное поведение - он сообщает вам, что дата не инициализирована.

В этом случае, первый дым-тест его с простым кодом, как

eStartDate = new DateField("Start Date ", DateField.DATE); 
    eStartDate.setDate(new Date()); 

затем, если это показывает дату, узнать, как воссоздать необходимый параметр Date из strStartDate. То есть, воссоздайте, если вы хотите, чтобы пользователь мог его модифицировать, потому что, если вам нужно отображать дату, было бы проще использовать StringItem, отображая нужную строку вместо

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