Java 转换为日期
我正在尝试创建多个Evenment实例,并为它们设置日期:Java 转换为日期,java,date,Java,Date,我正在尝试创建多个Evenment实例,并为它们设置日期: for (int i=2004; i<2009; i++){ evenementen.add(new Evenement("Rock Werchter", "Rock", "Werchter", 200000, (Date)formatter.parse(i+"/07/03"))); 但我似乎无法让它发挥作用 有什么想法吗?您可能需要使用日历来创建
for (int i=2004; i<2009; i++){
evenementen.add(new Evenement("Rock Werchter", "Rock", "Werchter", 200000,
(Date)formatter.parse(i+"/07/03")));
但我似乎无法让它发挥作用
有什么想法吗?您可能需要使用日历来创建日期
for (int i=2004; i<2009; i++) {
Calendar cal = Calendar.getInstance();
cal.clear();
// Calendar.JULY may be different depending on the JDK language
cal.set(i, Calendar.JULY, 3); // Alternatively, cal.set(i, 6, 3);
evenementen.add(new Evenement("Rock Werchter", "Rock", "Werchter", 200000,
cal.getTime()));
}
请注意,月份是以零为基础的,因此7月是6日。您可能需要使用日历来创建日期
for (int i=2004; i<2009; i++) {
Calendar cal = Calendar.getInstance();
cal.clear();
// Calendar.JULY may be different depending on the JDK language
cal.set(i, Calendar.JULY, 3); // Alternatively, cal.set(i, 6, 3);
evenementen.add(new Evenement("Rock Werchter", "Rock", "Werchter", 200000,
cal.getTime()));
}
请注意,月份是以零为基础的,因此7月是6月。请注意日期格式化程序使用的区域设置默认值可以是区域设置。英语是这样设置的,这意味着年份在字符串的末尾,而不是开头 您需要确保在撰写本文时有一个格式化程序构建,2008年,Java6,:
请注意日期格式化程序使用的区域设置默认值可以是locale.ENGLISH。您的操作系统就是这样设置的,这意味着年份是在字符串的末尾,而不是开头 您需要确保在撰写本文时有一个格式化程序构建,2008年,Java6,: java.time java.util日期时间API及其格式化API SimpleDataFormat已经过时,并且容易出错。建议完全停止使用,并切换到* 使用java.time(现代API)的解决方案: 输出: 了解更多关于java.time的信息,从 *无论出于何种原因,如果您必须坚持使用Java6或Java7,您可以使用哪个backport将大部分Java.time功能移植到Java6&7。如果您正在为Android项目工作,并且您的Android API级别仍然不符合Java-8,请检查并确认。 java.time java.util日期时间API及其格式化API SimpleDataFormat已经过时,并且容易出错。建议完全停止使用,并切换到* 使用java.time(现代API)的解决方案: 输出: 了解更多关于java.time的信息,从 *无论出于何种原因,如果您必须坚持使用Java6或Java7,您可以使用哪个backport将大部分Java.time功能移植到Java6&7。如果您正在为Android项目工作,并且您的Android API级别仍然不符合Java-8,请检查并确认。
怎么了?什么是夜班?格式化程序是如何初始化的?给我们看更多的代码!怎么了?什么是夜班?格式化程序是如何初始化的?给我们看更多的代码!我很确定日期格式化程序的默认值是您的操作系统设置为的值。代码是错误的。我试图用您的格式化程序解析2004/07/03问题中的第一个字符串,预计是2004年7月3日,但得到了2004年1月3日星期六00:00:00 CET。@OleV.V。13年后,事情可能确实发生了变化。当时我正在使用Java6。让我读一下你自己的答案并自学一下。我很确定日期格式化程序的默认值是你的操作系统设置的值。代码是错误的。我试图用您的格式化程序解析2004/07/03问题中的第一个字符串,预计是2004年7月3日,但得到了2004年1月3日星期六00:00:00 CET。@OleV.V。13年后,事情可能确实发生了变化。当时我正在使用Java6。让我读一下你自己的答案,然后自学。
import java.time.LocalDate;
import java.time.Month;
public class Main {
public static void main(String[] args) {
for (int i = 2004; i < 2009; i++) {
System.out.println(LocalDate.of(i, Month.JULY, 3));
}
}
}
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("u/M/d", Locale.ENGLISH);
for (int i = 2004; i < 2009; i++) {
LocalDate date = LocalDate.parse(i + "/07/03", dtf);
System.out.println(date);
}
}
}
2004-07-03
2005-07-03
2006-07-03
2007-07-03
2008-07-03