java.time
มาร์คเจโรนิมัสกล่าวไว้แล้ว ฉันกำลังปรุงมันออกมาอีกเล็กน้อย เพียงใส่ข้อความที่จะพิมพ์ภายในเครื่องหมายคำพูดเดียว
DateTimeFormatter yearFormatter = DateTimeFormatter.ofPattern("yyyy 'year'");
System.out.println(LocalDate.of(2010, Month.FEBRUARY, 3).format(yearFormatter));
System.out.println(Year.of(2010).format(yearFormatter));
System.out.println(ZonedDateTime.now(ZoneId.of("Europe/Vilnius")).format(yearFormatter));
เอาต์พุตเมื่อทำงานในขณะนี้:
2010 year
2010 year
2019 year
หากคุณใช้ a DateTimeFormatterBuilder
และappendPattern
วิธีการใช้เครื่องหมายคำพูดเดี่ยวในลักษณะเดียวกัน หรือใช้appendLiteral
วิธีการแทนและไม่มีเครื่องหมายคำพูดเดียว
เราจะใส่เครื่องหมายคำพูดเดียวในรูปแบบได้อย่างไร? อัญประกาศเดี่ยวสองคำสร้างหนึ่ง ไม่สำคัญว่าอัญประกาศคู่จะอยู่ในเครื่องหมายคำพูดเดี่ยวหรือไม่:
DateTimeFormatter formatterWithSingleQuote = DateTimeFormatter.ofPattern("H mm'' ss\"");
System.out.println(LocalTime.now(ZoneId.of("Europe/London")).format(formatterWithSingleQuote));
10 28 '34 "
DateTimeFormatter formatterWithSingleQuoteInsideSingleQuotes
= DateTimeFormatter.ofPattern("hh 'o''clock' a, zzzz", Locale.ENGLISH);
System.out.println(ZonedDateTime.now(ZoneId.of("America/Los_Angeles"))
.format(formatterWithSingleQuoteInsideSingleQuotes));
02 นาฬิกาตามเวลาออมแสงแปซิฟิก
รูปแบบทั้งหมดข้างต้นสามารถใช้ในการแยกวิเคราะห์ได้เช่นกัน ตัวอย่างเช่น:
LocalTime time = LocalTime.parse("16 43' 56\"", formatterWithSingleQuote);
System.out.println(time);
16:43:56 น
SimpleDateFormat
ระดับใช้เมื่อคำถามนี้ถูกถามเกือบ 10 ปีที่ผ่านมาเป็นฉาวโฉ่ลำบากและล้าสมัยยาว ขอแนะนำให้คุณใช้ java.time ซึ่งเป็นวันที่และเวลาของ Java API ที่ทันสมัยแทน นั่นคือเหตุผลที่ฉันแสดงให้เห็นเพียงแค่นั้น
ลิงค์
SimpleDateFormat
ชั้นเรียนที่ใช้ในคำตอบสองสามคำตอบนั้นเป็นเรื่องที่ยุ่งยากและล้าสมัยไปนาน หลีกเลี่ยงมัน. แทนที่จะใช้คำตอบสั้น ๆ โดย Mark Jeronimusสาธิตการใช้java.time ซึ่งเป็นวันที่และเวลาของ Java API ที่ทันสมัย