كيف يمكنك ربط تاريخ في خطوط باستخدام تنسيق محدد؟ مم/DD/Yyyy HH: MM: SS
سؤال
كيف تربط تاريخ في شرائط باستخدام تنسيق محدد؟ "MM/DD/YYYY HH: MM: SS"
<s:text name="myDateTime" formatPattern="MM/dd/yyyy HH:mm:ss" />
المحلول
يستخدم المشارب typeconverters لتحويل معلمات الطلب (السلاسل) إلى أنواع محددة. يمكن العثور على جافادوك لمحول نوع التاريخ الافتراضي هنا:
net.sourceforge.stripes.validation.dateTypeConverter
لتغيير التنسيقات الافتراضية التي تنص عليها:
يمكن تغيير هذه المجموعة الافتراضية من التنسيقات من خلال توفير مجموعة مختلفة من سلاسل التنسيق في حزمة موارد Stripes ، أو عن طريق التصنيف الفرعي والتجاوز getFormatStrings (). في جميع الحالات ، يجب تحديد الأنماط باستخدام مساحات مفردة كفواصل بدلاً من القطع أو الشرطات أو الأحرف الأخرى.
و:
المفاتيح المستخدمة في حزمة الموارد لتحديد سلاسل التنسيق ونمط العملية المسبقة هي: Stripes.DateTypeConverter.formatstrings و stripes.dateTypeConverter.preprocesspattern
إذا لم يفعل ذلك من أجلك ، فيمكنك دائمًا أن تملكك typeconverter. يمكن أن يكون محول النوع المخصص هذا بعد ذلك ملتزم بستر في ActionBean بواسطة:
@Validate(converter=YourCustomTypeConverter.class)
public void setDate(Date date) {
this.date = date;
}
إذا كنت تريد أن تدع التعيين تلقائيًا ، فأنت بحاجة إلى تجاوز الخريطة الافتراضية أو إنشاء نوع آخر (فرعي). على سبيل المثال ، يمكنك إنشاء محول النوع الخاص بك ليس لـ java.util.date ولكن لنوعك المخصص الذي يرث من java.util.date. نظرًا لأنه مجرد نوع فرعي دون أي سلوك إضافي ، يمكن لبقية التطبيق استخدامه كـ java.util.date.
Date date;
// No @validate needed, maps to MyCustomDate
public void setDate(MyCustomDate date) {
this.date = date;
}
نصائح أخرى
<fmt:formatDate timeZone="${timeZone}" value="${date}" pattern="MM/dd/yyyy hh:mm a"/>
SimpleDateFormat سوف تكون قادرة على مساعدتك.