在java中获取日期的整数值
我想将日期值转换为整数值,我使用的是在java中获取日期的整数值,java,swing,Java,Swing,我想将日期值转换为整数值,我使用的是jDateChooser public void OnDateClick(){ int inputDate = 20121220 ;//variable name for my jDateChooser is "OnDateClick" which i want assign to inputDate DateFormat df = new SimpleDateFormat("yyyyMMdd"); String date = df.
jDateChooser
public void OnDateClick(){
int inputDate = 20121220 ;//variable name for my jDateChooser is "OnDateClick" which i want assign to inputDate
DateFormat df = new SimpleDateFormat("yyyyMMdd");
String date = df.format(Integer.valueOf(inputDate));
String s = date.format(date);
int output = Integer.valueOf(s);
System.out.println(s);
}
目前,在我的代码中,inputDate
的值是固定的或已分配的,但我希望它基于用户使用jDateChooser
选择的日期
public void OnDateClick(){
int inputDate = 20121220 ;//variable name for my jDateChooser is "OnDateClick" which i want assign to inputDate
DateFormat df = new SimpleDateFormat("yyyyMMdd");
String date = df.format(Integer.valueOf(inputDate));
String s = date.format(date);
int output = Integer.valueOf(s);
System.out.println(s);
}
感谢您的帮助。您是否有jDateChooser对象,该对象具有用户选择的日期 然后:
// Set the date format
jDateChooser.setDateFormatString("yyyyMMdd");
//to get the date
String inputDate = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
inputDate = sdf.format(jDateChooser.getDate());
如果您有一个
int
格式的yyyyMMdd
,就像您的示例20121220
一样,并且想要一个String
格式的yyyyMMdd
,那么该格式实际上并不重要,因为该值已经具有所需的格式
只需使用String date=Integer.valueOfString.valueOf(inputDate)代码>不使用df.format(Integer.valueOf(inputDate))代码>;这将解释为自固定日期起的毫秒数
相反方向的转换是相同的;如果字符串的格式已为yyyyMMdd
,则只需使用Integer.parseInt(date)
。因此,您的整个示例程序将:
int inputDate = 20121220;
String date = String.valueOf(inputDate);
int output = Integer.parseInt(date);
System.out.println(output);
这看起来可能有点胡说八道,但由于在示例程序中实际上没有对Date
s执行任何操作,DateFormat
就过时了。更有用的是:
DateFormat df = new SimpleDateFormat("yyyyMMdd");
int inputDate = 20121220;
Date date=df.parse(String.valueOf(inputDate));
int output = Integer.parseInt(df.format(date));
System.out.println(output);
从您的jDateChooser
获取日期并使用您的格式?为什么inputDate
不是字符串
?您不应该将日期存储/符合为int。因为某些日期表示可能有前导零,而整数不能表示这些前导零。日期的最佳基本数据类型是Long(Date.getTime())或String,这是人类可读的格式。我需要的帮助是,不是将值“20121220”指定给inputDate,而是由我正在编写的应用程序中的jdatechooser选择它。所以日期将被转换成一个整数值,我将在计算中使用它。我希望我的问题现在清楚了?因此,当我从jdatechooser中选择一个日期时,它会被转换成一个整数,该整数或结果将用于进一步的操作。因此,我正确地假设您想要的是日期
,而不是字符串
,因为日期选择器的工作方式是日期
s。那么,您为什么不使用我的上一个示例来演示如何将整数转换为日期,然后再转换回整数呢?空行是日期选择器可能进入的位置。空行日期?如果是这样的话,输入日期变量20121220会发生什么?对不起,我不理解你的问题。有三行代码创建一个DateFormat
,并将int-inputDate
变量转换为一个Date
,您可以使用它来初始化日期选择器,这就是空行所在的位置。在这之后,有两行代码将日期转换为日期
,该日期可能来自日期选择器,返回到int输出
,并将其打印出来。嘿,只有五行代码,其中只有两行正在进行转换。解释代码的文字比实际代码多。注释中的解释文本甚至比答案中的代码还要多。我应该添加一个侦听器吗?因为这个代码给了我一个异常错误。我的表单上有jDateChooser。我很好奇输入变量做什么?我是java新手,所以请原谅。是的,您必须在拥有jDateChooser的页面中有一个侦听器,当用户单击apply按钮(或其他按钮)时,应该调用侦听器,并且在页面的OneEvent方法中,您应该从jDateChooser读取值并将其解析为字符串