Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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_Date_Pentaho_Kettle_Java.util.date - Fatal编程技术网

Java 添加日期

Java 添加日期,java,date,pentaho,kettle,java.util.date,Java,Date,Pentaho,Kettle,Java.util.date,我用这种方法在日期上加了天 这是标准程序, 但不幸的是,我的Pentaho应用程序在c.setTime(dt)上中断,我显然不知道原因,因为例外情况没有任何意义。 因此,另一个选项是解析日期并提取月、年、日和+1到日,但我必须处理2月和奇数月。 我脑子里只有这两个选择 有谁能给我提供其他选择吗 堆栈跟踪为 An unexpected error occurred in Spoon: (class: Processor, method: processRow signature: (Lorg/

我用这种方法在日期上加了天 这是标准程序, 但不幸的是,我的Pentaho应用程序在
c.setTime(dt)上中断,我显然不知道原因,因为例外情况没有任何意义。
因此,另一个选项是解析日期并提取月、年、日和+1到日,但我必须处理
2月
奇数月
。 我脑子里只有这两个选择

有谁能给我提供其他选择吗

堆栈跟踪为

An unexpected error occurred in Spoon:  
(class: Processor, method: processRow signature: (Lorg/pentaho/di/trans/step/StepMetaInterface;Lorg/pentaho/di/trans/step/StepDataInterface;)Z) Register 11 contains wrong type
java.lang.VerifyError: (class: Processor, method: processRow signature: (Lorg/pentaho/di/trans/step/StepMetaInterface;Lorg/pentaho/di/trans/step/StepDataInterface;)Z) Register 11 contains wrong type
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
    at java.lang.Class.getMethod0(Unknown Source)
    at java.lang.Class.getMethod(Unknown Source)
    at org.pentaho.di.trans.steps.userdefinedjavaclass.UserDefinedJavaClassMeta.getStepIOMeta(UserDefinedJavaClassMeta.java:338)
    at org.pentaho.di.trans.TransPainter.drawLine(TransPainter.java:899)
    at org.pentaho.di.trans.TransPainter.drawHop(TransPainter.java:510)
    at org.pentaho.di.trans.TransPainter.drawHop(TransPainter.java:499)
    at org.pentaho.di.trans.TransPainter.drawTrans(TransPainter.java:184)
    at org.pentaho.di.trans.TransPainter.buildTransformationImage(TransPainter.java:144)
    at org.pentaho.di.ui.spoon.trans.TransGraph.getTransformationImage(TransGraph.java:2728)
    at org.pentaho.di.ui.spoon.trans.TransGraph.paintControl(TransGraph.java:2691)
    at org.pentaho.di.ui.spoon.trans.TransGraph$4.paintControl(TransGraph.java:487)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
    at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Composite.WM_PAINT(Unknown Source)
    at org.eclipse.swt.widgets.Control.windowProc(Unknown Source)
    at org.eclipse.swt.widgets.Canvas.windowProc(Unknown Source)
    at org.eclipse.swt.widgets.Display.windowProc(Unknown Source)
    at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
    at org.eclipse.swt.internal.win32.OS.DispatchMessage(Unknown Source)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
    at org.pentaho.di.ui.spoon.Spoon.readAndDispatch(Spoon.java:1169)
    at org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:6940)
    at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:553)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.pentaho.commons.launcher.Launcher.main(Launcher.java:134)
试试看

一个例子

    Calendar cal = Calendar.getInstance();
    System.out.println(cal.getTime());// out put Thu Aug 22 16:31:56 IST 2013
    cal.add(Calendar.DATE,1);
    System.out.println(cal.getTime());// out put Fri Aug 23 16:31:56 IST 2013
看看这个


如果你用这种方法试一下,应该可以。请留下评论或在此发布您的代码,例外情况除外

另一种方法是使用


此外,如果您使用的是Kettle/Pentaho数据集成,则可以使用
计算器
步骤。提供的计算之一是“日期A+B天”。我经常使用它,它对我一直都很有效。

我也遇到了同样的问题,下面是对我有效的解决方案

这是用户定义的Java类中的一个问题

这是在尝试访问在try/catch块外的try/catch块内设置的变量时造成的(即,即使在之前声明,但在try/catch中未设置,仍会出现此错误)


Soruce-

请不要在问题标题中写下已经标记的内容。完整的堆栈跟踪是什么?您应该让日历完成艰苦的工作,它的设计是为了解决我们不知道的所有计时问题(例如,闰秒等)。就像@mabbas暗示的那样,您应该找出
c.setTime(dt)
中断的原因。所以我同意他的观点:完整的堆栈跟踪是什么?和:您是如何获得dt的?
dt
需要表示一个固定日期还是当前日期?@JelleFresen请看一看,这个错误似乎与
c.setTime(dt)
无关,我在堆栈跟踪中看不到对setTime的方法调用,也看不到任何使用日期/日历值的方法的指示。请看一下对的描述。也许你正在加载一个过时的类文件?尝试清理项目,重新编译所有内容,然后再次运行。这将在当前日期中添加1,问题是我想添加一个特定日期,然后使用Cal.set(Calender.date,your_date);请看我的问题,这就是我得到数据的地方,特别是在用户定义的java类中
    Calendar cal = Calendar.getInstance();
    System.out.println(cal.getTime());// out put Thu Aug 22 16:31:56 IST 2013
    cal.add(Calendar.DATE,1);
    System.out.println(cal.getTime());// out put Fri Aug 23 16:31:56 IST 2013
DateTime dateTime = new DateTime(date);
dateTime = dateTime.plusDays(1);