代码之家  ›  专栏  ›  技术社区  ›  prom85

SimpleDataformat-转换为其他区域设置

  •  -1
  • prom85  · 技术社区  · 9 年前

    sdf = new SimpleDateFormat("MMMM dd\nEEEE, YYYY", Locale.getDefault())
    

    java.lang.IllegalArgumentException: Unknown pattern character 'Y'
    

    Y 本地设备中不支持。因此,我必须将格式更改为:

    // the string format is formatted in english, so we pass in Locale.ENGLISH
    new SimpleDateFormat("MMMM dd\nEEEE, YYYY", Locale.ENGLISH)
    

    我现在怎么用这个 SimpleDateFormat 要用区域设置语言打印日期?我想要那个 EEEE

    实例

    SimpleDateFormat sdf = new SimpleDateFormat("MMMM dd\nEEEE, YYYY", Locale.getDefault());
    Date d = new Date();
    String formatted = sdf.format(d);
    

    预期

    DE: Juli 2017\nMittwoch, 2017
    EN: July 2017\nWednesday, 2017
    

    主意

    日期格式 与当前本地相似 new SimpleDateFormat("MMMM dd\nEEEE, YYYY", Locale.getDefault()); 但是现在我不能确定传入构造函数的字符串对于当前区域设置是否有效…(如异常所示, Y

    1 回复  |  直到 9 年前
        1
  •  2
  •   Jens    9 年前

    固定字符串必须在同级引号内:

    new SimpleDateFormat("MMMM dd'\n'EEEE',' yyyy", Locale.ENGLISH)
    

    但是 \n 是一条新线。希望你能在那里得到它。

    更新

    : Y在任何语言环境中都有效!!