如何通过本地化在java中获取数据?

如何通过本地化在java中获取数据?,java,date,Java,Date,我有一张有日期数据的表 我就是这样计算日期的 DateFormat dateFormat = getFormat(); date = dateFormat.parse((String) value).getTime(); if(date != null) { cell.setValue(dateFormat.format(date)); tableViewer.update(element, null); } public static DateFormat getF

我有一张有日期数据的表

我就是这样计算日期的

 DateFormat dateFormat = getFormat();
 date = dateFormat.parse((String) value).getTime();
 if(date != null) {
    cell.setValue(dateFormat.format(date));
    tableViewer.update(element, null);
 }

 public static DateFormat getFormat() {
    String systemLocale = System.getProperty("user.language"); //$NON-NLS-1$ 
    Locale locale = new Locale(systemLocale);
    DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM, locale);
    return dateFormat;
}
该日期以月(月名称)日期、年的格式存在于屏幕中

 for example Apr 26,2014.
现在我想得到单元格的值,并得到格式为“yyyy-mm-dd” 日期的值为2014年4月26日。 我怎样才能得到2014-04-26的结果?此外,我认为UI中的值可能会根据用户的本地化而改变

我试过了

  DateFormat dateFormat = getFormat();
  Date parse = dateFormat.parse((String) key);
但是所有的get方法都被弃用了,而且我没有得到getYear的正确结果

我不擅长约会,也许我错过了什么

试试这个:

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public class CustomFormattedDate {

    public static void main(String[] args) {
        Date date = new Date();
        // if you use DD for Daypattern, you'll get the day of the year, e.g. 119 for the
        // 29th April 2014, if you want 29, the day of the month, use dd
        SimpleDateFormat df = new SimpleDateFormat("YYYY-dd-MMM", new Locale(System.getProperty("user.language")));
        System.out.println(df.format(date));

        System.out.println(getDateFormat().format(date));
    }
}
输出

2014-29-Apr

您应该以所需的(用户)格式将java.util.Date对象存储在单元格中。这样,您就不必将字符串解析回日期。我需要不同的格式,然后在UI中使用。我一般需要它,而不是表格可能存在重复的问题,即该值的格式名称为月-日-年。在这种情况下,我可以使用simpleDAte。我希望输出为YYYY-DD-MM,Locale.derman是什么?我们可以有一个聊天?当然,邀请我@用户1365697谢谢你的回答帮助了我