如何将日期时间类型(Jython)转换为java.util.Date?

时间:2011-10-17 18:47:08

标签: python jython

我是Jython的新手,如何将日期时间类型(Jython)转换为java.util.Date?

谢谢。

3 个答案:

答案 0 :(得分:2)

请注意这一点:

  

java.util.Date.getTime()给出了自纪元以来的毫秒数,而Jython(就像CPython一样)给出了自纪元以来的秒数。因此,您需要将java.util.Date中给出的值除以1000

来自Jython的FAQ

答案 1 :(得分:2)

这是我的解决方案:

from java.util import Calendar, GregorianCalendar

def datetimeToJavaDate(value):
    cal = GregorianCalendar(value.year, value.month - 1, value.day, 
        value.hour, value.minute, value.second)
    cal.set (Calendar.MILLISECOND, value.microsecond / 1000)
    return cal.getTime()

答案 2 :(得分:0)

我做了一些乱搞并试验这个...这两个方法是我使用的,转换为java.sql.Timestamp然后在另一个方向,使用java.sql.Timestamp.time( )(自1970年1月1日以来的ms)。

" BST"这里代表的是英国夏令时...我当时确认它正确地考虑了这些日期:即看起来tz模块足够聪明,能够检测到夏季的几个月受BST和相应调整。

希望它可以与任何其他时区一起使用...

#include <stdio.h>
#include <stdlib.h>

void change_double(double *d1, double *d2);

int main()
{
    double *a, *b;
    printf("Write two variables of the type double.\n");
    scanf("%d", &a);
    scanf("%d", &b);
    printf("Normal variables: %d %d\n", a, b);
    change_double(&a, &b);
    printf("Changed variables: %d %d\n", a, b);
    return 0;
}

void change_double(double *d1, double *d2)
{
    double aux;
    aux=*d1;
    *d1=*d2;
    *d2=aux;
}