Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java日期问题_Java_Date - Fatal编程技术网

Java日期问题

Java日期问题,java,date,Java,Date,我使用的是GregorianCalander,当我尝试使用以下代码获取今天的日期时,我得到的日期可以追溯到一个月。我使用的代码如下 Calendar gcal = new GregorianCalendar(); SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); today = getTime(gcal); //date = dateFormat.format(ca

我使用的是GregorianCalander,当我尝试使用以下代码获取今天的日期时,我得到的日期可以追溯到一个月。我使用的代码如下

        Calendar gcal = new GregorianCalendar();
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
        today = getTime(gcal);
        //date = dateFormat.format(calendar.getTime());
        System.out.println("Today: " + today);
请帮我解决这个问题

输出为:

今天:2011年4月28日星期四00:00:00新西兰时间

编辑


我认为月份的内部编号从0开始,而不是1。因此,您可能需要在某处添加+1。
编辑:显示更多代码后:所需的更改是

String month = form_helper.round(gcal.get(GregorianCalendar.MONTH) + 1);

getTime()
方法做什么?请记住,在Java中,月份的常量从0开始,而不是从1开始,所以

编辑

既然您发布了
getTime()
的代码,我想这就是问题所在:

gcal.get(gregoriacalendar.MONTH)
返回Java内部存储的月份值,即0索引的月份值,因此“May”的值实际上是整数“4”

当值“4”被放回日期解析器时,结果是“April”,因为解析器会像人一样解释日期。因此,您只需将1添加到此值,以确保正确进行解析。

以下是我的尝试:

package forums;
import java.util.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;

public class Deepak
{
  public static void main(String[] args) {
    try {
      (new Deepak()).run();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  public void run() {
    Calendar calendar = new GregorianCalendar();
    Date today = calendar.getTime();
    System.out.println("Today: " + today);
  }

}
并且输出是预期的:

 Today: Sat May 28 22:00:52 EST 2011

如果您想要表示今天12:00AM(或00:00)的
Date
对象,为什么不执行以下操作:

private Date getTime() {
    Calendar gcal = new GregorianCalendar();
    gcal.set(Calendar.HOUR_OF_DAY, 0);
    gcal.set(Calendar.MINUTE, 0);
    gcal.set(Calendar.SECOND, 0);
    gcal.set(Calender.MILLISECOND, 0);
    return gcal.getTime();
}

@叶家斌:检查我的编辑getTime的代码是什么?从0开始的月份索引是它看起来的问题吗?我不知道。。。我知道他们在东部州有点落后,但整整一个月都落后了。。。世界跆拳道联盟?你确定你电脑的日期正确吗?顺便说一句。。。张贴您的实际代码<代码>今天=获取时间(gcal)不会编译(至少这个月不会)。现在我只需要问一下。。。为什么你为了今天的约会要走这么复杂的路?我肯定错过了什么?
private Date getTime() {
    Calendar gcal = new GregorianCalendar();
    gcal.set(Calendar.HOUR_OF_DAY, 0);
    gcal.set(Calendar.MINUTE, 0);
    gcal.set(Calendar.SECOND, 0);
    gcal.set(Calender.MILLISECOND, 0);
    return gcal.getTime();
}