如何在不使用Date函数的情况下将日期从yyyy-MM-dd转换为dd-MMM-yyyy

时间:2011-12-05 11:14:43

标签: blackberry java-me blackberry-jde simpledateformat date-format

我有“2011-12-05”,我希望将其转换为“2011年12月5日星期一”。 我的日期转换代码取决于设备时区。如果我的时区是印度,那么我会得到约会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 个答案:

答案 0 :(得分:2)

您可以指定特定的区域设置,而不是依赖系统的默认区域。

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

答案 1 :(得分:0)

此链接Converting Datetime in different timezones in Blackberry可以为您提供帮助。

答案 2 :(得分:0)

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