如何获取另一种语言的Java日期
我住在奥地利,如果我用Java打印日期,我会得到德语格式。但我想要英文版的
我已经用下面的代码试过了
import java.util.Date;
import java.text.*;
public class Calendar extends JFrame {
public static void main(String[] args) {
Date currentDate = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, d MMM yyyy", Locale.UK);
System.out.println(dateFormat.format(currentDate));
# 1 楼答案
如果有人感兴趣: 代码现在运行。我刚刚导入了“java.util.Locale” 不过谢谢你的帮助
# 2 楼答案
使用这个:Java8
# 3 楼答案
tl;博士
永远不要使用
Date
&SimpleDateFormat
。几年前被爪哇取代。上课时间时区对于确定当前日期至关重要
让
DateTimeFormatter.ofLocalized…
自动本地化爪哇。时间
现代方法使用java。JSR 310中定义的时间类
LocalDate
{a1}类表示只包含日期的值,不包含一天中的时间,也不包含{a2}或offset-from-UTC
时区对确定日期至关重要。在任何一个特定的时刻,世界各地的日期因地区而异。例如,午夜过后几分钟在Paris France是新的一天,而在Montréal Québec仍然是“昨天”
如果未指定时区,JVM将隐式应用其当前默认时区。该默认值可能在运行时(!)期间change at any moment,所以你的结果可能会有所不同。最好将所需/预期时区明确指定为参数。如果关键,请与用户确认该区域
以
Continent/Region
的格式指定一个proper time zone name,例如America/Montreal
、Africa/Casablanca
或Pacific/Auckland
。千万不要使用2-4个字母的缩写,例如EST
或IST
,因为它们不是真正的时区,没有标准化,甚至不是唯一的(!)如果您想使用JVM的当前默认时区,可以请求它并将其作为参数传递。如果省略,代码将变得模棱两可,我们无法确定您是否打算使用默认值,或者您是否像许多程序员一样不知道这个问题
或者指定一个日期。你可以用数字来设定月份,1-12月的数字是1-12
或者,更好的方法是使用预先定义的^{} 枚举对象,一年中每个月一个。提示:在整个代码库中使用这些} &^{}
Month
对象,而不仅仅是一个整数,以使代码更加自我记录,确保有效值,并提供type-safety。同上^{本地化
DateTimeFormatter.ofLocalize…
方法将自动为您本地化,选择适当的格式,并翻译星期日的名称&;月份等等要本地化,请指定:
例如:
或者,使用^{} 定义自己的自定义格式模式。传递可选的
Locale
参数,以确定本地化Search Stack Overflow,因为这已经被报道过很多次了。请参见本页的this other Answer,作者为Gaurav Shakya关于java。时间
{a17}框架内置于Java8及更高版本中。这些类取代了legacy日期时间类,比如^{} 、^{} 、&^{}
要了解更多信息,请参阅Oracle Tutorial。并在Stack Overflow中搜索许多示例和解释。规范是JSR 310
目前位于maintenance mode的Joda-Time项目建议迁移到java.time类
你可以交换java。时间对象直接与数据库连接。使用符合JDBC 4.2或更高版本的JDBC driver。不需要字符串,也不需要
java.sql.*
类在哪里可以获得java。时间课
ThreeTen-Extra项目扩展了java。有额外课程的时间。这个项目是java未来可能增加的一个试验场。时间你可以在这里找到一些有用的类,比如^{} 、^{} 、^{} 和more