如何在java中初始化日期类型的变量?

时间:2015-12-06 15:58:55

标签: java date variables

import java.util.Date;
Date firstDate; 

我不知道如何初个化firstDate例如你说的字符串

String line1="First line" 

但是你能给我一个例子,日期的格式是什么?

6 个答案:

答案 0 :(得分:6)

这是Oracle在Oracle日程类网站上的Javadoc:https://docs.oracle.com/javase/8/docs/api/java/util/Date.html
如果向下滚动到"构造函数摘要,"您将看到如何实例化Date对象的不同选项。与Java中的所有对象一样,您可以使用以下内容创建一个新对象:

Date firstDate = new Date(ConstructorArgsHere);

现在你有一点选择。如果您没有传递任何参数,只需这样做,

Date firstDate = new Date();

它将代表您调用它的确切日期和时间。以下是您可能想要使用的一些其他构造函数:

Date firstDate1 = new Date(int year, int month, int date);
Date firstDate2 = new Date(int year, int month, int date, int hrs, int min);
Date firstDate3 = new Date(int year, int month, int date, int hrs, int min, int sec);

答案 1 :(得分:2)

要从字符串解析日期,您可以选择希望它具有的格式。例如:

public Date StringToDate(String s){

    Date result = null;
    try{
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        result  = dateFormat.parse(s);
    }

    catch(ParseException e){
        e.printStackTrace();

    }
    return result ;
}

如果您现在想使用此方法,则必须使用此类

Date date = StringToDate("2015-12-06 17:03:00");

有关详细说明,请查看http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

答案 2 :(得分:1)

要初始化为当前日期,您可以执行以下操作:

Date firstDate = new Date();

要从String获取它,您可以使用SimpleDateFormat之类的:

String dateInString = "10-Jan-2016";
SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy");
try {
    Date date = formatter.parse(dateInString);
    System.out.println(date);
    System.out.println(formatter.format(date));
} catch (ParseException e) {
    //handle exception if date is not in "dd-MMM-yyyy" format
}

答案 3 :(得分:1)

java.util.Date 构造函数,其参数例如 新日期(int年,int月,int日期,int hrs,int分钟)。 已弃用,最好不再使用。 Oracle文档比 java.util.Calendar 更喜欢这种方式。因此,您可以设置任何日期并通过getTime()方法实例化Date对象。

Calendar calendar = Calendar.getInstance();
calendar.set(2018, 11, 31, 59, 59, 59);
Date happyNewYearDate = calendar.getTime();

请注意,月份号从0开始

答案 4 :(得分:0)

java.time

java.util.Date& .Calendar类已被Java 8及更高版本中内置的java.time框架所取代。新的类是巨大的改进,受到成功的Joda-Time库的启发。

java.time类倾向于使用静态factory methods而不是constructors来实例化对象。

以UTC时区获取当前时刻:

Instant instant = Instant.now();

获取特定时区的当前时刻:

ZoneId zoneId = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = ZonedDateTime.now( zoneId );

如果必须有一个java.util.Date用于尚未针对java.time类型更新的其他类,请从Instant转换。

java.util.Date date = java.util.Date.from( zdt.toInstant() );

关于 java.time

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

现在位于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

答案 5 :(得分:0)

2020 年更新:将 LocalDate 用于简单日期。

然后我们将 1988 年 10 月 23 日的日期初始化如下:

LocalDate date = LocalDate.of(1988,10,23);