SimpleDateFormat(String pattern, Locale locale) 构造方法中第二个参数到底有什么用?

imfang 2016-03-26 06:03:00

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class Test {
public static void main(String[] args) {
SimpleDateFormat df1=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
SimpleDateFormat df2=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss",Locale.US);
Date d=new java.util.Date();
System.out.println(df1.format(d));
System.out.println(df2.format(d));
}
}
运行的结果如下:
2016年03月26日 18:05:42
2016年03月26日 18:05:42

可以看到显示的时间并未相差12个小时。
SimpleDateFormat(String pattern, Locale locale) 构造方法中第二个参数到底有什么用? 它的存在应该有其合理性吧?
...全文
1586 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
imfang 2016-03-28
  • 打赏
  • 举报
回复
引用 4 楼 huntor 的回复:
[quote=引用 2 楼 imfang 的回复:] 还是不太明白,再顶上来~
G M E a z 这几个格式都会受Locale参数的影响
        SimpleDateFormat df1=new SimpleDateFormat("GGGG yyyy/MMMM/dd HH:mm:ss EEE aaa  zzzz",Locale.CHINA);
        SimpleDateFormat df2=new SimpleDateFormat("GGGG yyyy/MMMM/dd HH:mm:ss EEE aaa  zzzz",Locale.US);
公元 2016/三月/27 23:32:10 星期日 下午  中国标准时间
AD 2016/March/27 23:32:10 Sun PM  China Standard Time
[/quote] 非常感谢!!!
huntor 2016-03-27
  • 打赏
  • 举报
回复
引用 2 楼 imfang 的回复:
还是不太明白,再顶上来~
G M E a z 这几个格式都会受Locale参数的影响
        SimpleDateFormat df1=new SimpleDateFormat("GGGG yyyy/MMMM/dd HH:mm:ss EEE aaa  zzzz",Locale.CHINA);
        SimpleDateFormat df2=new SimpleDateFormat("GGGG yyyy/MMMM/dd HH:mm:ss EEE aaa  zzzz",Locale.US);
公元 2016/三月/27 23:32:10 星期日 下午  中国标准时间
AD 2016/March/27 23:32:10 Sun PM  China Standard Time
huntor 2016-03-27
  • 打赏
  • 举报
回复
你把月的格式MM改成 MMM 或者 MMMM 就有区别了
imfang 2016-03-27
  • 打赏
  • 举报
回复
还是不太明白,再顶上来~
就是九号您 2016-03-26
  • 打赏
  • 举报
回复
你把电脑设置为英语环境下,就会有区别,locale对象根据用户的国家,地区文化差异格式化,不会改变系统时间,只是表达方式变而已,就是数值表示方法不同而已,也是一样的值,这个方法不常用,因为不能覆盖所有语言环境

62,631

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧