1

以下のように、開始日と終了日に2つのカレンダーを使用しました。

date.Ic.add(Restrictions.between("islemZamani", date1, date2));

ただし、この基準の結果には、date1 の結果とそれらの間の結果があり、date2 の結果は含まれません。つまり、 date1<= の結果が表示されます。date1<= results<=date2 が必要です。だから私はこのようにSimpleDateFormatを試しました。

    String tar1 = new String();
    String tar2 = new String();
    TimeZone tz = TimeZone.getTimeZone("Europe/Istanbul");
    DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSZ");
    dateFormat.setTimeZone(tz);
    tar1 = dateFormat.format(date1);
    tar2 = dateFormat.format(date2);
    tar1 = tar1.substring(11, 18) + "000000";
    tar2 = tar2.substring(11, 18) + "235959";

    c.add(Restrictions.between("islemZamani", tar1, tar2));

NullPointerException が発生するようになりました。この問題を解決するにはどうすればよいですか? SimpleDateFormat とは別の方法をお勧めしますか? 返信ありがとうございます。


これはインデント エラーが原因で、:for ループの後にを置き忘れていました。

def main():
    a = input("Type number")
    e = int(a)
    function2(e)


def function2(e):
    for h in range(e):
        print("X")


main()

また、Python ではセミコロンは必要ありません。

4

1 に答える 1

1

文字列を使用して日付を操作するのは複雑すぎて、多くの問題が発生する可能性があります。java.util.Date および/または java.util.GregorianCalendar のみを使用してください。

これを試して :

GregorianCalendar calendar1 = new GregorianCalendar();
calendar1.setTime(date1);
// Edit the calendar1 here if you want to

GregorianCalendar calendar2 = new GregorianCalendar();
calendar2.setTime(date2);
calendar2.add(GregorianCalendar.DAY_OF_YEAR, 1);

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSZ");
TimeZone tz = TimeZone.getTimeZone("Europe/Istanbul");
dateFormat.setTimeZone(tz);

String tar1 = dateFormat.format(calendar1.getTime());
String tar2 = dateFormat.format(calendar2.getTime());

c.add(Restrictions.between("islemZamani", tar1, tar2));

しかし、痕跡がなければ、これで問題が解決するかどうかはわかりません...

また、可能であれば、文字列の代わりに日付を制限に使用してください。

于 2013-11-05T10:50:36.133 に答える