如何创建没有时间戳的java日期对象
我想创建一个没有时区的日期对象,例如: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真的很糟糕如何创建没有时间戳的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 因此,它的行为
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