Cara mengonversi Tanggal string menjadi mil detik panjang


Jawaban:


154

Menggunakan SimpleDateFormat

String string_date = "12-December-2012";

SimpleDateFormat f = new SimpleDateFormat("dd-MMM-yyyy");
try {
    Date d = f.parse(string_date);
    long milliseconds = d.getTime();
} catch (ParseException e) {
    e.printStackTrace();
}

17
SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy");
Date date = (Date)formatter.parse("12-December-2012");
long mills = date.getTime();

11

Sudah waktunya seseorang memberikan jawaban modern untuk pertanyaan ini. Pada tahun 2012 ketika pertanyaan diajukan, jawaban yang diposting juga adalah jawaban yang baik. Mengapa jawaban yang diposting pada tahun 2016 juga menggunakan kelas yang sudah lama usang SimpleDateFormatdan Datesedikit lebih menjadi misteri bagi saya. java.time, API tanggal dan waktu Java modern juga dikenal sebagai JSR-310, jauh lebih baik untuk digunakan. Anda dapat menggunakannya di Android melalui ThreeTenABP, lihat pertanyaan ini: Bagaimana menggunakan ThreeTenABP di Proyek Android .

Untuk sebagian besar tujuan, saya sarankan menggunakan milidetik sejak periode awal hari di UTC . Untuk mendapatkan ini:

    DateTimeFormatter dateFormatter
            = DateTimeFormatter.ofPattern("d-MMMM-uuuu", Locale.ENGLISH);
    String stringDate = "12-December-2012";
    long millisecondsSinceEpoch = LocalDate.parse(stringDate, dateFormatter)
            .atStartOfDay(ZoneOffset.UTC)
            .toInstant()
            .toEpochMilli();
    System.out.println(millisecondsSinceEpoch);

Ini mencetak:

1355270400000

Jika Anda memerlukan waktu di awal hari di beberapa zona waktu tertentu, tentukan zona waktu tersebut, bukan UTC, misalnya:

            .atStartOfDay(ZoneId.of("Asia/Karachi"))

Seperti yang diharapkan, ini memberikan hasil yang sedikit berbeda:

1355252400000

Hal lain yang perlu diperhatikan, ingatlah untuk menyediakan lokal ke DateTimeFormatter. Saya menganggap bulan Desember sebagai bahasa Inggris, ada bahasa lain yang bulan itu disebut sama, jadi silakan pilih sendiri lokasi yang tepat. Jika Anda tidak memberikan lokal, pemformat akan menggunakan pengaturan lokal JVM, yang dapat bekerja dalam banyak kasus, dan kemudian tiba-tiba gagal suatu hari ketika Anda menjalankan aplikasi Anda pada perangkat dengan pengaturan lokal yang berbeda.


9

Lihatlah SimpleDateFormatkelas yang dapat mengurai Stringdan mengembalikan a Datedan getTimemetode Datekelas.



3

Anda bisa menggunakan simpleDateFormat untuk mengurai tanggal string.


1

Cara termudah digunakan Date Using Date () dan getTime ()

    Date dte=new Date();
    long milliSeconds = dte.getTime();
    String strLong = Long.toString(milliSeconds);
    System.out.println(milliSeconds)

1

menggunakan format sederhana Anda dapat dengan mudah mencapainya.

1) Pertama konversikan string ke java.Date menggunakan simpledateformatter.

2) Gunakan metode getTime untuk mendapatkan hitungan milidetik dari tanggal

 public class test {
      public static void main(String[] args) {
      String currentDate = "01-March-2016";
      SimpleDateFormat f = new SimpleDateFormat("dd-MMM-yyyy");
     Date parseDate = f.parse(currentDate);
     long milliseconds = parseDate.getTime();
  }
        }

lebih banyak Contoh klik di sini


0

Coba kode di bawah ini

        SimpleDateFormat f = new SimpleDateFormat("your_string_format", Locale.getDefault());
        Date d = null;
        try {
            d = f.parse(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        long timeInMillis = d.getTime();
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.