导入Java日期类

时间:2016-07-03 18:09:05

标签: java eclipse date import

我不得不编辑原始问题,因为我认为很多作者误解了它。

我有最基本的问题。尝试获取系统日期。我的代码就是这个;

import java.util.Date;

public class DateDemo {
   public static void main(String args[]) {
      // Instantiate a Date object
      Date date = new Date();

      // display time and date using toString()
      System.out.println(date.toString());
   }
}

它给了我错误:令牌“import”上的语法错误,断言期望

解决方案应该非常基础,但我找不到它。

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

你试图做一些不可能的事情。您应该创建一个类,并在此类的方法中,您应该进行这些操作。在下面的示例中,您将在类中的main方法中执行这些操作。主要方法是程序启动的地方。

除了这些要点之外,如果你的类在一个包中,你应该在类的最开始定义它。例如,您的包被称为myPackage,您应该将其添加到您的代码中,如下所示;

例如,您在包Foo中创建了一个类myPackage

package myPackage;
import java.util.Date;

public class Foo {
   public static void main(String args[]) {

      // You create a new date object and assign it to the sysdate
      Date sysdate = new Date();

      // You are now displaying your time and date using toString()
      System.out.println(sysdate.toString());
   }
}

答案 1 :(得分:1)

Java中的指令不能在课外。所以你的指示

Date sysdate = new Date();
System.out.println(sysdate);

应该在方法中(例如,在main中),并且必须在类中声明方法。据我所知,importpackage指令是唯一必须在类定义之前的指令。

另请注意,编写类的文件必须与类的名称相同,例如,示例DateDemo必须保存在名为DateDemo.java的文件中。

答案 2 :(得分:0)

关于您的其他答案是正确的,但主要方法未包括正确的类结构。

请勿使用Date

此外,请勿使用Date。它经过精心设计,非常令人困惑和麻烦。现在已被java.time.Instant类所取代。

java.time

要代表UTC中的时刻,请使用Instant该类使用的分辨率与nanoseconds一样好。取决于主机milliseconds,主机microsecondscomputer clock hardware实现的局限性,当前时刻可能仅用operating systemJava Virtual Machine捕获。

示例代码。

package com.basilbourque.example.telltimeapp ;

import java.time.Instant ;

public class TellTime {
    public static void main( String args[] ) 
    {
       Instant instant = Instant.now() ;     // Capture the current moment in UTC. 
       String output = instant.toString() ;  // Generate text in a `String` object representing the value of the `Instant` object in standard ISO 8601 format. 
       System.out.println( output ) ;        // Dump text to the console.                  
    }
}

让我们变得更加现实。在instance中启动我们的应用程序的the main method。然后,在该应用程序对象上调用一个方法来使结果滚动。

我们的应用程序知道如何做两件事:

我们的main方法要求这两个中的第一个。

package com.basilbourque.example.telltimeapp ;

import java.time.Instant ;

public class TellTime {
    public static void main( String args[] )  // The `main` method is *not* object-oriented, just a hack, the way we solve the chicken-or-the-egg dilemma] of how to launch an OOP app.
    {
        TellTime app = new TellTime() ;       // Create an instance of our app, an object that represents the entire running app.
        app.tellCurrentMomentInUtc() ;        // Ask our app object to run some code.
    }

    public void tellCurrentMomentInUtc() 
    {
        Instant instant = Instant.now() ;     // Capture the current moment in UTC. 
        String output = instant.toString() ;  // Generate text in a `String` object representing the value of the `Instant` object in standard ISO 8601 format. 
        System.out.println( output ) ;        // Dump text to the console. 2018-07-02T20:17:49.929677Z
    }

    public void tellCurrentMomentInMontreal() 
    {
        Instant instant = Instant.now() ;             // Capture the current moment in UTC. 
        ZoneId z = ZoneId.of( "America/Montreal" ) ;  // A time zone is a history of the past, present, and future changes to the offset-from-UTC used by the people of a particular region.
        ZonedDateTime zdt = instant.atZone( z ) ;     // Adjust from UTC to Québec time. Same moment, same point on the timeline, different wall-clock time.
        DateTimeFormatter f = DateTimeFormatter.ofLocalizedDateTime( FormatStyle.FULL ).withLocale( Locale.CANADA_FRENCH ) ;   // Be aware that time zone and locale have *nothing* to do with one another, completely orthogonal issues.
        String output = zdt.format( f ) ;             // Generate text in a localized format.
        System.out.println( output ) ;                // Dump text to the console. Example: lundi 2 juillet 2018 à 16:16:59 Eastern Daylight Time
    }

}

教程

在发布到Stack Overflow之前,先研究Oracle的Java Tutorials


关于 java.time

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

目前位于Joda-Timemaintenance mode项目建议迁移到java.time类。

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

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

在哪里获取java.time类?

ThreeTen-Extra项目使用其他类扩展了java.time。该项目为将来可能在java.time中添加内容提供了一个试验场。您可能会在这里找到一些有用的类,例如IntervalYearWeekYearQuartermore