在Java中将日期转换为long

时间:2014-02-26 03:06:40

标签: java arrays date type-conversion

我有以下字符串02/11/2012 23:11

有没有办法将其转换为long 021120122311l

我正在尝试根据创建的日期将对象映射到数组中的特定位置。

4 个答案:

答案 0 :(得分:1)

您可以使用SimpleDateFormat将其生成为不带任何符号的字符串,然后使用Long类解析long值

    SimpleDateFormat s1 = new SimpleDateFormat("dd/MM/yyyy HH:mm");
    SimpleDateFormat s2 = new SimpleDateFormat("ddMMyyyyHHmm");
    Date d = s1.parse("02/11/2012 23:11");
    String s3 = s2.format(d);
    System.out.println(s3);
    long l = Long.parseLong(s3);
    System.out.println(l);

答案 1 :(得分:1)

试试这个,

        String dateValue = "02/11/2012 23:11";
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm");
        Date date = simpleDateFormat.parse(dateValue);
        simpleDateFormat = new SimpleDateFormat("ddMMyyyyHHmm");
        String value = simpleDateFormat.format(date);
        Long result = Long.parseLong(value);
        System.out.println("Result : "+result);

答案 2 :(得分:0)

你可以试试这个

  SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy hh:mm");

    Date inputDate;
    try {
        inputDate = simpleDateFormat.parse("02/11/2012 23:11");
        System.out.println(inputDate.getTime());
    } catch (ParseException e) {
        e.printStackTrace();
    }

输出:

1351878060000

答案 3 :(得分:0)

时区对于将字符串解析为日期时间值至关重要,除非您绝对确定所有字符串都表示在同一时区中发生的日期时间。

Joda-Time让这项工作变得更加轻松。

DateTimeFormatter formatter = DateTimeFormat.forPattern( "dd/MM/yyyy hh:mm" );

DateTimeZone timeZone = DateTimeZone.forID( "Europe/Paris" );
DateTime dateTime = formatter.withZone( timeZone ).parseDateTime( myString );

long millisecondsSinceEpoch = dateTime.getMillis();