我需要将输入另存为字符串吗? 一个整数?
使用a时
JTextField,您从用户那里得到的输入是a
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);
要提示用户使用哪种格式,您需要将强制
DateFormat转换为
SimpleDateFormat以获得模式字符串:
if (defaultFormat instanceof SimpleDateFormat) { SimpleDateFormat sdf = (SimpleDateFormat)defaultFormat; System.out.println("Use date format like: " + sdf.toPattern());}上面@adenoyelle的评论提醒我: 为您的日期解析代码编写单元测试 。



