ฉันจะแปลงวันที่ปัจจุบันเป็นสตริงใน Java ได้อย่างไร
ฉันจะแปลงวันที่ปัจจุบันเป็นสตริงใน Java ได้อย่างไร
คำตอบ:
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());
}
นำมาจากที่นี่
Calendar
ที่ต้องการมากกว่าDate
?
// On the form: dow mon dd hh:mm:ss zzz yyyy
new Date().toString();
ใช้การDateFormat
ใช้งาน เช่นSimpleDateFormat
.
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
String data = df.format(new Date());
LocalDate.now()
.toString()
2017/01/23
ควรระบุเขตเวลาที่ต้องการ / คาดไว้อย่างชัดเจน
LocalDate.now( ZoneId.of( "America/Montreal" ) )
.toString()
วิธีการที่ทันสมัยเช่น Java 8 และใหม่กว่านั้นใช้กับกรอบjava.time
ระบุเขตเวลาเนื่องจากวันที่แตกต่างกันไปทั่วโลกในช่วงเวลาใดเวลาหนึ่ง
ZoneId zoneId = ZoneId.of( "America/Montreal" ) ; // Or ZoneOffset.UTC or ZoneId.systemDefault()
LocalDate today = LocalDate.now( zoneId ) ;
String output = today.toString() ;
2017/01/23
ตามค่าเริ่มต้นคุณจะได้รับ String ในรูปแบบISO 8601 มาตรฐาน
สำหรับรูปแบบอื่น ๆ ให้ใช้java.time.format.DateTimeFormatter
คลาส
java.timeกรอบถูกสร้างขึ้นใน Java 8 และต่อมา ชั้นเรียนเหล่านี้แย่งลำบากเก่ามรดกเรียนวันที่เวลาเช่นjava.util.Date
, และCalendar
SimpleDateFormat
โครงการJoda-Timeขณะนี้อยู่ในโหมดการบำรุงรักษาแนะนำการโยกย้ายไปยังคลาสjava.time
ต้องการเรียนรู้เพิ่มเติมโปรดดูที่ออราเคิลกวดวิชา และค้นหา Stack Overflow สำหรับตัวอย่างและคำอธิบายมากมาย สเปกJSR 310
คุณสามารถแลกเปลี่ยนวัตถุjava.timeโดยตรงกับฐานข้อมูลของคุณ ใช้ไดรเวอร์ JDBC ที่สอดคล้องกับJDBC 4.2หรือใหม่กว่า ไม่จำเป็นต้องมีสตริงไม่จำเป็นต้องมีjava.sql.*
คลาส
จะหาคลาส java.time ได้ที่ไหน?
โครงการThreeTen-Extraขยาย java.time ด้วยคลาสเพิ่มเติม โปรเจ็กต์นี้เป็นพื้นที่พิสูจน์สำหรับการเพิ่ม java.time ในอนาคต คุณอาจพบว่าการเรียนที่มีประโยชน์บางอย่างที่นี่เช่นInterval
, YearWeek
, YearQuarter
และอื่น ๆ อีกมากมาย
เร็วขึ้น:
String date = FastDateFormat.getInstance("dd-MM-yyyy").format(System.currentTimeMillis( ));
เป็นเวลาปปปป - ดด - ดด
String time = new DateTime( yourData ).toString("yyyy-MM-dd");
และไลบรารีของ DateTime คือ:
นำเข้า org.joda.time.DateTime;
DateTime
มาจากอะไร? คำตอบเกี่ยวกับ Stack Overflow ควรมีคำอธิบายเนื่องจากไซต์นี้มีจุดมุ่งหมายเพื่อเป็นมากกว่าไลบรารีข้อมูลโค้ด
คำตอบส่วนใหญ่คือ / ถูกต้อง การปรับเปลี่ยน JAVA API ใหม่สำหรับการจัดการวันที่ทำให้แน่ใจว่าความคลุมเครือบางอย่างก่อนหน้านี้ในการจัดการวันที่ของจาวาจะลดลง
คุณจะได้รับข้อความเลิกใช้งานสำหรับการโทรที่คล้ายกัน
new Date() // deprecated
การเรียกข้างต้นทำให้ผู้พัฒนาสันนิษฐานว่าวัตถุ Date ใหม่จะให้วัตถุ Date ที่มีการประทับเวลาปัจจุบัน ลักษณะการทำงานนี้ไม่สอดคล้องกันในคลาส Java API อื่น ๆ
วิธีใหม่ในการดำเนินการนี้คือการใช้อินสแตนซ์ปฏิทิน
new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()
ที่นี่เช่นกันหลักการตั้งชื่อไม่สมบูรณ์แบบ แต่มีการจัดระเบียบมาก สำหรับคนอย่างฉันที่มีช่วงเวลาที่ยากลำบากในการหลอกลวง แต่จะไม่มีวันลืมบางสิ่งหากฟังดูมีเหตุผลนี่เป็นแนวทางที่ดี
สิ่งนี้มีความหมายเหมือนกันกับชีวิตจริง
อีกวิธีหนึ่งในการทำเช่นนี้คือการใช้ Joda time API
new DateTime().toString("yyyy-MM-dd")
หรือที่ชัดเจนมาก
new DateTime(Calendar.getInstance().getTime()).toString("yyyy-MM-dd")
ทั้งสองจะให้ผลลัพธ์เหมือนกัน
java.util.Date
, java.util.Calendar
และjava.text.SimpleTextFormat
ตอนนี้มรดกแทนที่โดยjava.timeชั้นเรียน นอกจากนี้โปรเจ็กต์Joda-Timeยังอยู่ในโหมดการบำรุงรักษาโดยทีมงานจะให้คำแนะนำในการย้ายข้อมูลไปที่ java.time
Clock
ใช้งานใน Java 8 นั้นเหมือนกับคลาสดั้งเดิมทุกประการ เฉพาะใน Java 9 เท่านั้นที่มีการนำไปใช้งานใหม่ซึ่งสามารถจับภาพช่วงเวลาปัจจุบันด้วยความละเอียดได้ดีถึงนาโนวินาที
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
รูปแบบใดก็ได้ไปยังฟังก์ชันของคุณ