我按日期添加天数"Add day"
这是标准程序,
但不幸的是我的Pentaho应用程序在c.setTime(dt);
上中断,我显然不知道原因,因为例外没有任何意义。
所以另一个选择是解析日期并提取月,年和日以及+1到当天,但我必须处理Feburary
和odd months
。
我脑子里只有这两个选项。
任何可以指导我任何其他选择的人?
堆栈跟踪是
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)
答案 0 :(得分:2)
此外,如果您正在使用Kettle / Pentaho数据集成,则可以使用Calculator
步骤。提供的计算之一是“日期A + B天”。我经常使用它,它一直很适合我。
答案 1 :(得分:1)
我遇到了同样的问题,这里的解决方案对我有用..
这是用户定义的Java类
中的一个问题这是在尝试访问在try / catch块之外的try / catch块中设置的变量时引起的(即使先前已声明,但在try / catch中未设置,仍会出现此错误)。< / p>
答案 2 :(得分:0)
尝试。
Calender cal=Calender.getInstance();
cal.add(Calender.DATE,1);
一个例子
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
检查Demo。
如果以这种方式尝试,这应该可以正常工作。请在此处发表评论或发布您的代码,并附上例外情况。
答案 3 :(得分:0)
另一种方法是使用Joda time
DateTime dateTime = new DateTime(date);
dateTime = dateTime.plusDays(1);