有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我有一张有日期数据的表格

这就是我追踪日期的方式

 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结果

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


共 (1) 个答案

  1. # 1 楼答案

    试试这个:

    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