تنسيق تاريخ Java - بما في ذلك الأحرف الإضافية

StackOverflow https://stackoverflow.com/questions/2138085

  •  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);

ستحصل على مزيد من المعلومات هنا نص الارتباط

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top