有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何获取另一种语言的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));

共 (3) 个答案

  1. # 1 楼答案

    如果有人感兴趣: 代码现在运行。我刚刚导入了“java.util.Locale” 不过谢谢你的帮助

  2. # 2 楼答案

    使用这个:Java8

    LocalDate localDate=LocalDate.now();
    
    String dateInGerman=localDate.format(DateTimeFormatter.ofPattern("EEEE, dd MMMM, yyyy",Locale.GERMANY));
    
  3. # 3 楼答案

    tl;博士

    永远不要使用Date&SimpleDateFormat。几年前被爪哇取代。上课时间

    时区对于确定当前日期至关重要

    DateTimeFormatter.ofLocalized…自动本地化

    LocalDate
    .now( 
        ZoneId.of( "Europe/Vienna ) 
    )
    .format(
        DateTimeFormatter
        .ofLocalizedDate( FormatStyle.FULL )
        .withLocale( Locale.UK )
    )
    

    Wednesday, 15 May 2019

    爪哇。时间

    现代方法使用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/MontrealAfrica/CasablancaPacific/Auckland。千万不要使用2-4个字母的缩写,例如ESTIST,因为它们不是真正的时区,没有标准化,甚至不是唯一的(!)

    ZoneId z = ZoneId.of( "America/Montreal" ) ;  
    LocalDate today = LocalDate.now( z ) ;
    

    如果您想使用JVM的当前默认时区,可以请求它并将其作为参数传递。如果省略,代码将变得模棱两可,我们无法确定您是否打算使用默认值,或者您是否像许多程序员一样不知道这个问题

    ZoneId z = ZoneId.systemDefault() ;  // Get JVM’s current default time zone.
    

    或者指定一个日期。你可以用数字来设定月份,1-12月的数字是1-12

    LocalDate ld = LocalDate.of( 1986 , 2 , 23 ) ;  // Years use sane direct numbering (1986 means year 1986). Months use sane numbering, 1-12 for January-December.
    

    或者,更好的方法是使用预先定义的^{}枚举对象,一年中每个月一个。提示:在整个代码库中使用这些Month对象,而不仅仅是一个整数,以使代码更加自我记录,确保有效值,并提供type-safety。同上^{}&^{}

    LocalDate localDate = LocalDate.of( 1986 , Month.FEBRUARY , 23 ) ;
    

    本地化

    DateTimeFormatter.ofLocalize…方法将自动为您本地化,选择适当的格式,并翻译星期日的名称&;月份等等

    要本地化,请指定:

    • ^{}以确定字符串的长度或缩写
    • ^{}确定:
      • 用于翻译日名、月名等的人类语言
      • 文化规范决定缩写、大写、标点、分隔符等问题

    例如:

    Locale l = Locale.UK ;   // Or Locale.CANADA_FRENCH, Locale.JAPAN, etc.
    DateTimeFormatter f = 
        DateTimeFormatter
        .ofLocalizedDate( FormatStyle.LONG )
        .withLocale( l )
    ;
    String output = localDate.format( f );
    

    output: Wednesday, 15 May 2019

    或者,使用^{}定义自己的自定义格式模式。传递可选的Locale参数,以确定本地化Search Stack Overflow,因为这已经被报道过很多次了。请参见本页的this other Answer,作者为Gaurav Shakya


    关于java。时间

    {a17}框架内置于Java8及更高版本中。这些类取代了legacy日期时间类,比如^{}^{}、&^{}

    要了解更多信息,请参阅Oracle Tutorial。并在Stack Overflow中搜索许多示例和解释。规范是JSR 310

    目前位于maintenance modeJoda-Time项目建议迁移到java.time

    你可以交换java。时间对象直接与数据库连接。使用符合JDBC 4.2或更高版本的JDBC driver。不需要字符串,也不需要java.sql.*

    在哪里可以获得java。时间课

    ThreeTen-Extra项目扩展了java。有额外课程的时间。这个项目是java未来可能增加的一个试验场。时间你可以在这里找到一些有用的类,比如^{}^{}^{}more