Bagaimana cara mengubah tanggal sekarang menjadi string di Java?
Bagaimana cara mengubah tanggal sekarang menjadi string di Java?
Jawaban:
String date = new SimpleDateFormat("dd-MM-yyyy").format(new Date());
// GET DATE & TIME IN ANY FORMAT
import java.util.Calendar;
import java.text.SimpleDateFormat;
public static final String DATE_FORMAT_NOW = "yyyy-MM-dd HH:mm:ss";
public static String now() {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
return sdf.format(cal.getTime());
}
Diambil dari sini
Calendar
lebih diinginkan daripada Date
?
// On the form: dow mon dd hh:mm:ss zzz yyyy
new Date().toString();
Gunakan DateFormat
implementasi; mis SimpleDateFormat
.
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
String data = df.format(new Date());
LocalDate.now()
.toString()
2017-01-23
Lebih baik menentukan zona waktu yang diinginkan / diharapkan secara eksplisit.
LocalDate.now( ZoneId.of( "America/Montreal" ) )
.toString()
Cara modern untuk Java 8 dan yang lebih baru adalah dengan framework java.time .
Tentukan zona waktu, karena tanggalnya bervariasi di seluruh dunia pada saat tertentu.
ZoneId zoneId = ZoneId.of( "America/Montreal" ) ; // Or ZoneOffset.UTC or ZoneId.systemDefault()
LocalDate today = LocalDate.now( zoneId ) ;
String output = today.toString() ;
2017-01-23
Secara default Anda mendapatkan String dalam format ISO 8601 standar.
Untuk format lain gunakan java.time.format.DateTimeFormatter
kelas.
The java.time kerangka dibangun ke Jawa 8 dan kemudian. Kelas-kelas ini menggantikan tua merepotkan warisan kelas tanggal-waktu seperti java.util.Date
, Calendar
, & SimpleDateFormat
.
Proyek Joda-Time , sekarang dalam mode pemeliharaan , menyarankan migrasi ke kelas java.time .
Untuk mempelajari lebih lanjut, lihat Tutorial Oracle . Dan cari Stack Overflow untuk banyak contoh dan penjelasan. Spesifikasinya adalah JSR 310 .
Anda dapat bertukar objek java.time langsung dengan database Anda. Gunakan driver JDBC yang sesuai dengan JDBC 4.2 atau yang lebih baru. Tidak perlu string, tidak perlu java.sql.*
kelas.
Di mana mendapatkan kelas java.time?
Proyek ThreeTen-Extra memperluas java.time dengan kelas tambahan. Proyek ini adalah tempat pembuktian untuk kemungkinan penambahan java.time di masa mendatang. Anda mungkin menemukan beberapa kelas berguna di sini seperti Interval
, YearWeek
, YearQuarter
, dan lebih .
Lebih cepat:
String date = FastDateFormat.getInstance("dd-MM-yyyy").format(System.currentTimeMillis( ));
Untuk waktu sebagai YYYY-MM-dd
String time = new DateTime( yourData ).toString("yyyy-MM-dd");
Dan Library of DateTime adalah:
import org.joda.time.DateTime;
DateTime
? Jawaban tentang Stack Overflow harus memiliki penjelasan karena situs ini dimaksudkan sebagai lebih dari sekadar pustaka cuplikan.
Sebagian besar jawaban valid. Modifikasi JAVA API baru untuk penanganan Tanggal memastikan bahwa beberapa ambiguitas sebelumnya dalam penanganan tanggal java dikurangi.
Anda akan mendapatkan pesan yang tidak berlaku lagi untuk panggilan serupa.
new Date() // deprecated
Panggilan di atas membuat pengembang berasumsi bahwa objek Tanggal baru akan memberikan objek Tanggal dengan stempel waktu saat ini. Perilaku ini tidak konsisten di seluruh kelas API Java lainnya.
Cara baru untuk melakukannya adalah menggunakan Contoh Kalender .
new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()
Di sini juga konvensi penamaan tidak sempurna tetapi ini banyak diatur. Untuk orang seperti saya yang kesulitan menjambret sesuatu tetapi tidak akan pernah melupakan sesuatu jika kedengarannya / tampak logis, ini adalah pendekatan yang baik.
Ini lebih identik dengan kehidupan nyata
Satu cara lagi untuk melakukannya adalah dengan menggunakan Joda time API
new DateTime().toString("yyyy-MM-dd")
atau yang lebih jelas
new DateTime(Calendar.getInstance().getTime()).toString("yyyy-MM-dd")
keduanya akan mengembalikan hasil yang sama.
java.util.Date
, java.util.Calendar
, dan java.text.SimpleTextFormat
sekarang warisan , digantikan oleh java.time kelas. Selain itu, proyek Joda-Time sekarang dalam mode pemeliharaan , dengan tim menyarankan migrasi ke java.time.
Clock
implementasinya di Java 8 persis sama dengan class lama. Hanya di Java 9 implementasi baru tiba, mampu menangkap momen saat ini dengan resolusi sehalus nanodetik.
public static Date getDateByString(String dateTime) {
if(dateTime==null || dateTime.isEmpty()) {
return null;
}
else{
String modified = dateTime + ".000+0000";
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
Date dateObj = new Date();
Date dateObj1 = new Date();
try {
if (dateTime != null) {
dateObj = formatter.parse(modified);
}
} catch (ParseException e) {
e.printStackTrace();
}
return dateObj;
}
}
String
format apa pun ke fungsi Anda.