【问题标题】:Date() is showing error regarding mismatched parametersDate() 显示有关参数不匹配的错误
【发布时间】:2014-06-29 01:26:21
【问题描述】:

我已经在我的代码中尝试了这些行

DateFormat df = new SimpleDateFormat("dd/MM/yy");
String formattedDate = df.format(new Date());
out.println(formattedDate);

但是 Date() 显示一些错误,例如没有为 Date() 找到合适的构造函数,并且构造函数 Date.Date(long) 不适用(实际参数列表和形式参数列表的长度不同)。我搜索了很多,但没有找到任何答案。我只想要一个简单格式的日期。帮助 !! 我试着给出一个像

这样的论点
String formattedDate=df.format(new Date(0));

但它显示的日期类似于 70 年 1 月 1 日。

【问题讨论】:

  • 您是否导入了java.sql.Date 而不是java.util.Date
  • 是的,我已经导入了
  • 你导入了什么? java.sql.Date?如果是,这不是您想要的。
  • 哦,这就是问题所在。我导入了 java.sql.Date 而不是 java.util.date 。现在它工作正常。谢谢

标签: java date datetime


【解决方案1】:

你一定是导入了错误的Date类,请确保你import java.util.Date;

【讨论】:

  • 重新阅读问题后,我认为这是正确的。您可能还想考虑使用Calendar.getInstance().getTime()
【解决方案2】:

你必须检查你是否以正确的jsp文件方式导入了正确的包。 <%@ page import="java.util.Date" %> 以正确的方式。

【讨论】:

    【解决方案3】:

    tl;博士

    LocalDate.now( ZoneId.of( "America/Montreal" ) )
             .format( 
                 DateTimeFormatter.ofLocalizedDate( FormatStyle.SHORT )
                                  .withLocale( Locale.CANADA )
             )
    

    2016 年 1 月 23 日:

    23/01/16

    live code in IdeOne.com

    java.time

    接受的Answer by Joshi是正确的。

    此外,执行此操作的现代方法是使用 java.time 类来取代麻烦的旧旧日期时间类。

    DateTimeFormatter

    DateTimeFormatter 类可以在创建表示日期时间值的字符串时自动本地化。您想要的格式恰好是本地化到加拿大的日期和other locales

    如果需要,您可以指定自定义格式。通常最好让 java.time 本地化。

    要本地化,请指定:

    • FormatStyle 确定字符串的长度或缩写。
    • Locale 确定 (a) 用于翻译日期名称、月份名称等的人类语言,以及 (b) 决定缩写、大写、标点符号等问题的文化规范。

    示例代码:

    Locale l = Locale.CANADA ;
    DateTimeFormatter f = 
        DateTimeFormatter.ofLocalizedDate( FormatStyle.SHORT )
                         .withLocale( l ) ;
    

    LocalDate

    LocalDate 类表示没有时间和时区的仅日期值。

    时区对于确定日期至关重要。对于任何给定的时刻,日期在全球范围内因区域而异。例如,Paris France 中午夜过后几分钟是新的一天,而 Montréal Québec 中仍然是“昨天”。

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

    要以标准ISO 8601 格式生成表示此日期值的字符串,请调用toString

    String outputStandard = today.toString();
    

    2016-01-23

    要生成表示此日期值的字符串,请调用format

    String output = today.format( f );
    

    23/01/16


    关于java.time

    java.time 框架内置于 Java 8 及更高版本中。这些类取代了麻烦的旧 legacy 日期时间类,例如 java.util.DateCalendarSimpleDateFormat

    Joda-Time 项目现在位于maintenance mode,建议迁移到 java.time。

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

    从哪里获得 java.time 类?

    ThreeTen-Extra 项目通过附加类扩展了 java.time。该项目是未来可能添加到 java.time 的试验场。您可以在这里找到一些有用的类,例如IntervalYearWeekYearQuartermore

    【讨论】:

      【解决方案4】:

      我遇到了这个问题。如果您在 Netbeans 上,请右键单击该页面,然后选择修复

      导入,然后将import java.sql.date;更改为import java.util.date;

      开启自动保存。以下是打印当前日期并显示的完整程序

      格式化当前日期

      导入 java.util.Date; //这里不要使用 java.sql.date 它是 java 的一个子集

      //util.date,如果你不导入它,它将不起作用。

      导入 java.text.SimpleDateFormat;

      导入 java.text.DateFormat;

      公共类 DateFormat {

      public static void main(String[] args)

      {

      //java.util.Date jdate = new java.util.Date();

      String Billdate = "dd-MM-yyyy";

      DateFormat sdf = new SimpleDateFormat(Billdate);

      日期 dt=new Date(); //当前日期

       System.out.println("The current date is="+dt); 
      
      System.out.println("The Formatted current date 
      

      is="+sdf.format(dt.getTime()));

      } }

      【讨论】:

      • 如果发生这种情况,请务必为日期添加导入语句。它必须特别是 import java.util.date。如果不使用或者使用 import java.sql.date;它可能会显示错误
      • 导入 java.util.Date; //导入日期类 import java.text.SimpleDateFormat;导入 java.text.DateFormat;公共类 HelloWorld { public static void main(String[] args) { String Billdate = "dd-MM-yyyy"; DateFormat sdf = new SimpleDateFormat(Billdate);日期 dt=new Date(); //当前日期 System.out.println("格式化后的当前日期为="+sdf.format(dt.getTime())); } }
      • 您不需要重复已经给出的答案。 Stack Overflow 是一个问答网站,每个人都可以清晰地就(不)同意/确认相互投票,而不是像老式的讨论论坛那样,每个人都在(不)同意/确认时互相重复,变成无法消化/无法搜索的混乱。
      猜你喜欢
      • 1970-01-01
      • 2020-02-12
      • 2021-01-26
      • 2014-05-14
      • 1970-01-01
      • 1970-01-01
      • 2016-03-03
      • 2019-03-01
      • 2011-06-25
      相关资源
      最近更新 更多