как конвертировать дату из гггг-мм-дд в дд-ммм-гггг без использования функции даты - PullRequest
0 голосов
/ 05 декабря 2011

У меня есть «2011-12-05», и я хочу преобразовать это в «Понедельник, 05 декабря 2011». Мой код конвертации даты зависит от часового пояса устройства. Если мой часовой пояс - Индия, тогда я получаю дату Monday 05-Dec-2011, а если мой часовой пояс - Кингстон, Ямайка, я получаю Sunday 04-Dec-2011.

По этой причине мое приложение не отображает правильную дату для разных часовых поясов.

Есть ли какое-либо решение для преобразования даты без Blackberry Date класса или с использованием текущей даты и часового пояса?

Я хочу преобразовать только эту дату в String

Я конвертирую эту дату, используя функцию ниже

public static String reformatMonthDate(String source) 
{
    SimpleDateFormat write = new SimpleDateFormat("dd MMM yyyy"); //YYYY-MMM-dd
    Date date = new Date(HttpDateParser.parse(source));
    return write.format(date);
}

Ответы [ 3 ]

2 голосов
/ 05 декабря 2011

Вы можете указать конкретную локаль вместо того, чтобы полагаться на системные настройки по умолчанию.

Locale locale = Locale.get(Locale.LOCALE_fr);

// Parse with HttpDateParser
Date date = new Date(HttpDateParser.parse("2002-01-29"));

// Format with a custom format and locale
DateFormat formatter = new SimpleDateFormat("E, dd MMM yyyy", locale);
StringBuffer buf = new StringBuffer(30);
String s = formatter.format(date, buf, null).toString(); // mar., 29 janv. 2002
0 голосов
/ 05 декабря 2011

DateTimePicker выдает текущую дату в соответствии с местоположением или настройками конфигурации устройства.

Попробуйте этот код: Вы должны получить свое требование.

public class LoadingScreen extends MainScreen implements FieldChangeListener
{
private String select_Date[]={"Select Date"};
private String month_ar[]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
private ObjectChoiceField choiceField;
private ButtonField show;
public LoadingScreen() 
{
    createGUI();
}
private void createGUI()
{
    choiceField=new ObjectChoiceField("Select Date: ", select_Date, 0)
    {
        protected boolean navigationClick(int status, int time) 
        {
            DateTimePicker datePicker = DateTimePicker.createInstance( Calendar.getInstance(), "dd/MM/yyyy",null);
            datePicker.doModal();
            Calendar cal1=datePicker.getDateTime();
            String day="";
            String mon="";
            if(String.valueOf(cal1.get(Calendar.DAY_OF_MONTH)).length()==1)
            {
                 day="0"+String.valueOf(cal1.get(Calendar.DAY_OF_MONTH));
            }
            else
            {
                 day=String.valueOf(cal1.get(Calendar.DAY_OF_MONTH));
            }
            mon=String.valueOf(cal1.get(Calendar.MONTH));
            String month=""+month_ar[cal1.get(Calendar.MONTH)];
            select_Date[0]=day+"-"+month+"-"+cal1.get(Calendar.YEAR);
            choiceField.setChoices(select_Date);
            return true;
        }
    };
    add(choiceField);
    show=new ButtonField("Show",FIELD_HCENTER);
    show.setChangeListener(this);
    add(show);
}
public void fieldChanged(Field field, int context) 
{
    if(field==show)
    {
        UiApplication.getUiApplication().invokeLater(new Runnable() 
        {
            public void run() 
            {
                Dialog.alert(select_Date[choiceField.getSelectedIndex()]);
            }
        });
    }
}
public boolean onMenu(int instance) 
{
    return true;
}
protected boolean onSavePrompt() 
{
    return true;
}
}

OutPut

0 голосов
/ 05 декабря 2011
...