THM*_*THM 3 java datetime-format timeofday datetimeformatter
先前创建的测试使用DateTimeFormatter.ofPattern("ha");并返回“10AM”(表示“ 2017-04-09T10:00-06:00[US/Mountain]”)。
在我的 MacO 和 Java 下 ['openjdk version "11.0.12"'] 我得到“10am”
"10AM" != "10am"
Run Code Online (Sandbox Code Playgroud)
在规范中,我看到“ha”应该创建“10AM”而不是“10am”,请参阅:https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html
有什么建议吗?
DateTimeFormatter是一种区域设置敏感类型,即它的解析和格式化取决于Locale. 检查切勿在没有区域设置的情况下使用 SimpleDateFormat 或 DateTimeFormatter以了解有关它的更多信息。
如果您有 English Locale,并且希望输出始终为单一大小写(即大写),则可以将字符串操作与格式化字符串链接起来,例如
import java.time.LocalTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
System.out.println(
LocalTime.now(ZoneOffset.UTC)
.format(DateTimeFormatter.ofPattern("ha", Locale.ENGLISH))
.toUpperCase()
);
}
}
Run Code Online (Sandbox Code Playgroud)
示例运行的输出:
6AM
Run Code Online (Sandbox Code Playgroud)
从Trail: Date Time了解有关现代日期时间 API *的更多信息。
* 如果您正在从事 Android 项目,并且您的 Android API 级别仍然不符合 Java-8,请通过 desugaring 检查可用的 Java 8+ API。请注意,Android 8.0 Oreo 已提供对java.time.
| 归档时间: |
|
| 查看次数: |
2960 次 |
| 最近记录: |