添加天数

时间:2013-08-22 10:51:55

标签: java date pentaho kettle java.util.date

我按日期添加天数"Add day" 这是标准程序, 但不幸的是我的Pentaho应用程序在c.setTime(dt);上中断,我显然不知道原因,因为例外没有任何意义。
所以另一个选择是解析日期并提取月,年和日以及+1到当天,但我必须处理Feburaryodd 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)

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

我遇到了同样的问题,这里的解决方案对我有用..

这是用户定义的Java类

中的一个问题

这是在尝试访问在try / catch块之外的try / catch块中设置的变量时引起的(即使先前已声明,但在try / catch中未设置,仍会出现此错误)。< / p>

Soruce - http://jira.pentaho.com/browse/PDI-13032

答案 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);
相关问题