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_Timezone_Simpledateformat - Fatal编程技术网

如何创建没有时间戳的java日期对象

如何创建没有时间戳的java日期对象,java,date,timezone,simpledateformat,Java,Date,Timezone,Simpledateformat,我想创建一个没有时区的日期对象,例如:2007-06-21。这可能吗? 当我使用以下方法时,它会像2007年6月21日星期四00:00:00 GMT那样打印 如果要设置日期格式,则需要使用DateFormat或类似的格式。日期只是时间上的一个瞬间——自Unix纪元以来的毫秒数。它对时区、日历系统或格式没有任何概念。toString方法始终使用系统本地时区,并始终以默认方式对其进行格式化。从: 将此日期对象转换为以下格式的字符串: 道指周一至dd hh:mm:ss zzz yyyy 因此,它的行为

我想创建一个没有时区的日期对象,例如:2007-06-21。这可能吗? 当我使用以下方法时,它会像2007年6月21日星期四00:00:00 GMT那样打印

如果要设置日期格式,则需要使用DateFormat或类似的格式。日期只是时间上的一个瞬间——自Unix纪元以来的毫秒数。它对时区、日历系统或格式没有任何概念。toString方法始终使用系统本地时区,并始终以默认方式对其进行格式化。从:

将此日期对象转换为以下格式的字符串:

道指周一至dd hh:mm:ss zzz yyyy

因此,它的行为完全符合记录

您已经有了一个格式正确的DateFormat,因此只需对其调用format:

当然,这在您的示例中没有多大意义,因为您刚刚对它进行了解析——但您通常会首先传递日期

请注意,如果这是为了与数据库交互,最好不要将其作为字符串传递。尽可能多地将值保留在本机表示形式中,并使用PreparedStatement.setDate之类的方法将其传递到数据库

顺便说一句,如果您可以更改为使用Java8java.time.*中的新日期/时间API,您将可以更顺利地使用与日期/时间相关的任何内容。日期/日历API真的很糟糕

System.out.println("pickUpDate " + sdf.format(pickUpDate));
您可以使用上面的代码将日期格式化为字符串

日期不是日期。这是一个时间戳。这是一个令人印象深刻的API设计,不是吗

您现在需要的类型是在Java8中添加的

如果不能使用Java 8,可以使用Java 7的后端口。

使用以下代码:

SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
Date pickUpDate =sdf.parse("2007-06-21");
System.out.println("pickUpDate "+sdf.format(pickUpDate));
希望它能帮助您。

这是java.util.Date的toString

 String your_format_date=sdf.format(pickUpDate);
 System.out.println("pick Up Date " + your_format_date);
因此,如果您要传递一个日期并尝试打印它,它将一直打印出来。

代码:

Date date = new Date();     
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(date));
日期:2016年4月29日星期五04:53:16 GMT

样本输出:2016-04-29

所需进口:

import java.util.Date; //for new Date()
import java.text.SimpleDateFormat; // for the format change

日期没有格式。完全重复,其他重复的候选者是和@DharshanSithamparam请在发布前搜索堆栈溢出。虽然我同意LocalDate更可取,但现在假设每个人都可以使用Java 8还为时过早。更新了答案以提及Java 7的后端口。
    public String toString() {

        // "EEE MMM dd HH:mm:ss zzz yyyy";
        BaseCalendar.Date date = normalize();

        StringBuilder sb = new StringBuilder(28);
        int index = date.getDayOfWeek();
        if (index == gcal.SUNDAY) {
            index = 8;
        }

        convertToAbbr(sb, wtb[index]).append(' ');            // EEE
        convertToAbbr(sb, wtb[date.getMonth() - 1 + 2 + 7]).append(' ');  // MMM
        CalendarUtils.sprintf0d(sb, date.getDayOfMonth(), 2).append(' '); // dd

        CalendarUtils.sprintf0d(sb, date.getHours(), 2).append(':');   // HH
        CalendarUtils.sprintf0d(sb, date.getMinutes(), 2).append(':'); // mm
        CalendarUtils.sprintf0d(sb, date.getSeconds(), 2).append(' '); // ss

        TimeZone zi = date.getZone();
        if (zi != null) {
            sb.append(zi.getDisplayName(date.isDaylightTime(), zi.SHORT, Locale.US)); // zzz
        } else {
            sb.append("GMT");
        }

        sb.append(' ').append(date.getYear());  // yyyy

        return sb.toString();
    }
Date date = new Date();     
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(date));
import java.util.Date; //for new Date()
import java.text.SimpleDateFormat; // for the format change