2013-02-06 35 views
0

我有一个日期对象myDate(说)。 执行以下之后:设置日期对象Java

Calendar cal = Calendar.getInstance(); 
cal.set(Calendar.MONTH, 9); 
cal.set(Calendar.DATE, 24); 
cal.set(Calendar.YEAR, 2013); 
cal.set(Calendar.HOUR,13); 
cal.set(Calendar.MINUTE,45); 
cal.set(Calendar.SECOND,52); 

我想将数值指明MyDate对象设定为上述的值,并因此显示了如下的输出。

Mon Sep 09 13:45:52 PST 2013 

请让我知道如何做到这一点。

+4

您需要使用[SimpleDateFormat的类](http://docs.oracle.com/javase/7/ docs/api/java/text/SimpleDateFormat.html) – Smit

回答

2
import java.util.*; 

public class DateTest { 
    public static void main(String[] args) { 
     Date myDate; 
     Calendar cal = Calendar.getInstance(); 
     cal.set(Calendar.MONTH, 9); 
     cal.set(Calendar.DATE, 24); 
     cal.set(Calendar.YEAR, 2013); 
     cal.set(Calendar.HOUR,13); 
     cal.set(Calendar.MINUTE,45); 
     cal.set(Calendar.SECOND,52); 
     myDate = cal.getTime(); 
     System.out.println(myDate); 
    } 
} 
+3

OP希望九月,而不是十月。 –

0

你可以写:

myDate.setTime(cal.getTimeInMillis()); 
1

的属性月份开始一月=零。为什么哦为什么Sun做出这种反直觉的事情,我不知道。

 
import java.util.*; 

public class DateTest { 
    public static void main(String[] args) { 
     Date myDate; 
     Calendar cal = Calendar.getInstance(); 
     cal.set(Calendar.MONTH, 8); 
     cal.set(Calendar.DATE, 24); 
     cal.set(Calendar.YEAR, 2013); 
     cal.set(Calendar.HOUR,13); 
     cal.set(Calendar.MINUTE,45); 
     cal.set(Calendar.SECOND,52); 
     myDate = cal.getTime(); 
     System.out.println(myDate); 
    } 
} 

另一个考虑,输出有一个时区 - 如果你想Java安装的时区,没有probs。如果你想PST 和Java时区默认是别的地方,然后用下面的构造函数:

TimeZone timezone = TimeZone.getTimeZone("America/Los_Angeles"); 
Calendar cal = Calendar.getInstance(timezone); 
+0

非常感谢您共享信息,以便在创建日期对象时设置时区。 –