在Java中解析日期时间字符串是否需要'Locale'? 在什么条件下,我需要一个解析Java中日期时间字符串的方法 语言环境与语言环境有什么关系
有时我会看到一些问题和答案,这些问题和答案是解析问题的解决方案所需要的区域设置。然而,在另一些书中,却没有提到语言环境 区域设置和时区不相关 区域设置和时区是独立的,与日期时间处理有关的问题在Java中解析日期时间字符串是否需要'Locale'? 在什么条件下,我需要一个解析Java中日期时间字符串的方法 语言环境与语言环境有什么关系,java,date,datetime,java-time,Java,Date,Datetime,Java Time,有时我会看到一些问题和答案,这些问题和答案是解析问题的解决方案所需要的区域设置。然而,在另一些书中,却没有提到语言环境 区域设置和时区不相关 区域设置和时区是独立的,与日期时间处理有关的问题 区域设置 语言人类语言,如。星期几、月份和的名称文本。例如,今天是星期一还是隆迪 文化常用习惯用法,用于排列组成日期时间值字符串表示形式的文本和数字片段。例如……简而言之,是月-日-年,日-月-年,还是年-月-日?从长远来看,一周中的哪一天是第一天?月份名称的首字母是大写还是全小写?缩写词是否有字符
- 区域设置
- 语言
人类语言,如。星期几、月份和的名称文本。例如,今天是星期一还是隆迪 - 文化
常用习惯用法,用于排列组成日期时间值字符串表示形式的文本和数字片段。例如……简而言之,是
,月-日-年
,还是日-月-年
?从长远来看,一周中的哪一天是第一天?月份名称的首字母是大写还是全小写?缩写词是否有字符年-月-日
- 语言
- 时区
- 偏移量
一个地区的人们使用的时间与()之间的小时和分钟差,后者是世界调节时钟和时间的主要时间标准 - 异常
抵销变更的历史记录、定义抵销的当前应用规则,包括调整,以及近期变更的确认计划
- 偏移量
- 一名法国男子在印度浦那参加一个会议,他需要在印度的墙上看到会议日程安排,但他更愿意把“星期一”读成他的母语法语“伦迪”。
- 法国地区
- 印度时区
- 一名在西雅图工作的巴西工程师想观看芬兰图尔库的现场网络研讨会。她需要知道何时将她的网络浏览器指向网络研讨会。在适应西雅图时区后,她需要知道芬兰的开始时间,但要用她的母语葡萄牙语显示巴西的地区。
- 表示语言环境(“pt”、“BR”)(用于生成文本表示)
- 芬兰的计划开始时间必须从
调整为欧洲/赫尔辛基
(西雅图时区)美国/洛杉矶
- 冰岛的一家报纸可能会将发生在俄罗斯的事件报道为两个日期时间,莫斯科时区,为清楚起见,添加UTC时区。但文章将使用冰岛语作为文本,包括星期一。
- 莫斯科时区和冰岛地区
- UTC时区和冰岛地区
- 星期日名称和/或月份名称(或顺序指标,但最好避免)
- 软编码、本地化格式
ZoneId zoneIdIstanbul = ZoneId.of( "Europe/Istanbul" );
ZonedDateTime zdtIstanbul = ZonedDateTime.of( 2015, 10, 11, 12, 30, 00, 0, zoneIdIstanbul ); // Half-past noon in Turkey.
为了方便客户,她使用和习惯设置文本格式。她定义了一个格式化程序对象来处理日期时间值的文本表示的生成。我们还可以为要创建的格式化程序分配一个时区
ZoneId zoneIdIstanbul = ZoneId.of( "Europe/Istanbul" );
ZonedDateTime zdtIstanbul = ZonedDateTime.of( 2015, 10, 11, 12, 30, 00, 0, zoneIdIstanbul ); // Half-past noon in Turkey.
Locale locale_tr_TR = new Locale( "tr", "TR" );
DateTimeFormatter formatter_tr_TR = DateTimeFormatter.ofLocalizedDateTime( FormatStyle.FULL ).withLocale( locale_tr_TR );
String outputTurkish = formatter_tr_TR.format( zdtIstanbul );
Locale locale_fi_FI = new Locale( "fi", "FI" );
DateTimeFormatter formatter_fi_FI = DateTimeFormatter.ofLocalizedDateTime( FormatStyle.FULL ).withLocale( locale_fi_FI );
String outputFinnish = formatter_fi_FI.format( zdtIstanbul );
Locale locale_fr_CA = Locale.CANADA_FRENCH;
ZoneId zoneId_Montréal = ZoneId.of( "America/Montreal" );
DateTimeFormatter formatter_fr_CA_Adjusted = DateTimeFormatter.ofLocalizedDateTime( FormatStyle.FULL ).withLocale( locale_fr_CA ).withZone( zoneId_Montréal );
String outputQuébec = formatter_fr_CA_Adjusted.format( zdtIstanbul );
Locale locale_en_US = Locale.US;
DateTimeFormatter formatter_US_Unadjusted = formatter_fr_CA_Adjusted.withLocale( locale_en_US );
String output_US_Unadjusted = formatter_US_Unadjusted.format( zdtIstanbul );
System.out.println( "zdtIstanbul : " + zdtIstanbul );
System.out.println( "outputTurkish : " + outputTurkish );
System.out.println( "outputFinnish : " + outputFinnish );
System.out.println( "outputQuébec : " + outputQuébec );
System.out.println( "output_US_Unadjusted : " + output_US_Unadjusted );