Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中获取日期的整数值_Java_Swing - Fatal编程技术网

在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读取值并将其解析为字符串