- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
"20170412" output -> "Wednesday, April -6ren">
基于以下格式的输入字符串:"yyyyMMdd"
,例如"20170412"
,如何显示星期和日期?
例如:
input -> "20170412"
output -> "Wednesday, April 12th 2017"
或 "Wed Apr 12 2017"
或类似的东西
无论我尝试使用哪种模式 SimpleDateFormat
( https://stackoverflow.com/a/4216767/658323 ),我总是得到我不需要的时间和时区。
这可能吗?
编辑:我的问题不是重复。我在我的帖子中明确提到,可能重复的问题中列出的所有 SimpleDateFormat
模式都显示用户的时间和时区。我需要一个用户区域设置的日期模式,没有时间或时区。
最佳答案
LocalDate.parse(
"20170412" ,
DateTimeFormatter.BASIC_ISO_DATE
).format(
DateTimeFormatter.ofLocalizedDate( FormatStyle.FULL )
.withLocale( Locale.US )
)
Wednesday, April 12, 2017
现代方法是使用 java.time 类,特别是 LocalDate
。 LocalDate
类表示没有时间和时区的纯日期值。
定义格式模式以匹配您的输入。您的输入恰好符合 ISO 8601 的“基本”版本,其中分隔符的使用最少。为此,java.time 已经预定义了一种格式化模式。
DateTimeFormatter f = DateTimeFormatter.BASIC_ISO_DATE ;
LocalDate ld = LocalDate.parse( "20170412" , f );
要生成标准 ISO 8601 格式的字符串,请调用 toString
。 java.time 类在解析/生成字符串时使用标准格式。
String output = ld.toString() ;
2017-04-12
一般来说,我建议您坚持使用 ISO 8601 格式的扩展版本,如上面的示例所示,它在日期中包含连字符,而不是基本版本。扩展版本更易于人类阅读,并且更易于识别为日期时间值。
您可以生成其他格式的字符串。如果需要,您可以指定确切的格式。但通常最好让 java.time 为您本地化。
要本地化,指定:
FormatStyle
确定字符串的长度或缩写。Locale
确定 (a) 用于翻译日期名称、月份名称等的人类语言,以及 (b) 决定缩写、大写、标点符号、分隔符等问题的文化规范。示例代码。
Locale l = Locale.CANADA_FRENCH ; // Or Locale.US, Locale.ITALY, etc.
DateTimeFormatter f = DateTimeFormatter.ofLocalizedDate( FormatStyle.FULL )
.withLocale( l ) ;
String output = ld.format( f ) ;
对于 Locale.US
,输出为:
Wednesday, April 12, 2017
java.time框架内置于 Java 8 及更高版本中。这些类取代了麻烦的旧类 legacy日期时间类,例如 java.util.Date
, Calendar
, & SimpleDateFormat
.
Joda-Time项目,现在在maintenance mode , 建议迁移到 java.time类。
要了解更多信息,请参阅 Oracle Tutorial .并在 Stack Overflow 中搜索许多示例和解释。规范为 JSR 310 .
从哪里获得 java.time 类?
ThreeTen-Extra项目用附加类扩展 java.time。该项目是 future 可能添加到 java.time 的试验场。您可能会在这里找到一些有用的类,例如 Interval
, YearWeek
, YearQuarter
, 和 more .
关于java - 将字符串转换为人类可读的日期 (java/android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43376992/
有没有一种方法(程序、库)可以大致了解文档是用哪种语言编写的? 我有一堆混合语言的文本文档(~500K),需要导入支持 i18n 的 CMS (Drupal).. 我不需要完美的匹配,只需要一些猜测。
Closed. This question needs details or clarity。它当前不接受答案。
使用 UTF-8 编码。 (Multiple languages in one HTML page)。 跨不同浏览器(包括 iPad 上的 Safari)在单个网页上正确显示多种人类语言的最佳做法是什
我有一个完全可用的代码,它是为 Windows 编写的,是用 Visual Studio 构建的。 我想做的是为该软件添加另一种语言。我的想法是在窗口角落放置两个标志(一个英语和一个德语),并在用户点
我刚刚得到一个脚本,我想对其进行一些更改,我正在寻找某人为我开发一份自由职业,以使我将提供的加载字符串可读以进行编辑。 Lua代码是这样的: ------------------------- ENG
有没有不是简单逐字翻译的语言翻译项目?一个具有先进算法/设计的? 目前主流和流行的翻译软件,例如谷歌翻译,似乎是查找一个词或一组连续的词,然后将其直接翻译成不知何故确定为最佳匹配的内容。但是因为它不是
基于 Twilio 的人类/非人类检测 - 我正在尝试通过如下所示的代码来检测调用是否被人类或机器人接听 HashMap params = new HashMap(); params.put("Fro
这是目前(不确定)我能想到的处理多语言网站的最佳方式,它不涉及 gettext、zend_translate 或任何 php 插件或框架。 我认为它非常简单:我有 3 种语言,我将它们的“内容”写在不
我是一名优秀的程序员,十分优秀!