是否需要将输入另存为字符串?整数?
使用 时,您从用户处获得的输入是 ,因为日期可以包含类似 或 的字符,具体取决于您选择的日期格式。当然,您也可以使用一些更复杂的输入法,其中输入字段已经验证了日期格式,并返回日,月和年的单独值,但使用当然更容易开始。JTextField
String
.
-
JTextField
它必须是什么格式(yyyyMMdd等)?
这取决于您的要求。可以使用 SimpleDateFormat 类来分析任何日期格式:
String input = "20130507";
String format = "yyyyMMdd";
SimpleDateFormat df = new SimpleDateFormat(format);
Date date = df.parse(input);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int week = cal.get(Calendar.WEEK_OF_YEAR);
但更有可能的是,您希望使用特定于您的区域设置的日期格式:
import java.text.DateFormat;
DateFormat defaultFormat = DateFormat.getDateInstance();
Date date = defaultFormat.parse(input);
要向用户提示要使用的格式,您需要将 转换为 a 以获取模式字符串:DateFormat
SimpleDateFormat
if (defaultFormat instanceof SimpleDateFormat) {
SimpleDateFormat sdf = (SimpleDateFormat)defaultFormat;
System.out.println("Use date format like: " + sdf.toPattern());
}
上面@adenoyelle的评论提醒我:为日期解析代码编写单元测试。