تنسيق تاريخ Java - بما في ذلك الأحرف الإضافية
-
22-09-2019 - |
سؤال
هل هناك ما يعادل تنسيق نمط PHP Date () في Java؟ أعني ، في PHP ، يمكنني التراجع عن شخصيات ESCAPE لعلاجها حرفيًا. بمعنى آخر yyyy y e a r قد يصبح عام 2010. لم أجد أي شيء مشابه في Java ، كل الأمثلة تتعامل فقط مع تنسيقات التاريخ المدمجة.
على وجه الخصوص ، أتعامل مع jcalendar جيلو التاريخ وهم DateFormatString منشأه.
أحتاجه لأنه في مكانتي ، يجب أن تكتب جميع أنواع الأشياء الإضافية بتنسيق التاريخ ، مثل D. (لليوم) بعد أيام ، م. (لسنوات) بعد سنوات جزء وهلم جرا. في أسوأ حالات ، يمكنني استخدام String Replace أو regexp ولكن ربما هناك طريقة أبسط؟ شكرا مقدما!
المحلول
بالتأكيد ، مع SimpleDateFormat يمكنك تضمين السلاسل الحرفية:
في حدود أوتار أنماط التاريخ والوقت ، يتم تفسير الرسائل غير المُقالة من "A" إلى "Z" ومن "A" إلى "Z" على أنها رسائل نمط تمثل مكونات سلسلة التاريخ أو الزمن. يمكن اقتباس النص باستخدام علامات اقتباس مفردة (') لتجنب التفسير. "" "يمثل اقتباس واحد. لا يتم تفسير جميع الشخصيات الأخرى ؛ يتم نسخها ببساطة في سلسلة الإخراج أثناء التنسيق أو المطابقة مع سلسلة الإدخال أثناء التحليل.
"hh 'o''clock' a, zzzz" 12 o'clock PM, Pacific Daylight Time
نصائح أخرى
فقط من أجل الاكتمال ، Java 8's DateTimeFormatter
يدعم هذا أيضًا:
DateTimeFormatter.ofPattern("yyyy 'year'");
يمكنك استخدام String.Format كما هو موثق في java.util.formatter:
Calendar c = ...;
String s = String.format("%tY year", c);
// -> s == "2010 year" or whatever the year actually is
java.text.simpledateformat
SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");
String formattedDate = formatter.format(date);
ستحصل على مزيد من المعلومات هنا نص الارتباط