[java]ปัญหาการ การใช้ DateFormat และ setLenient

เนื่องจากต้องการตรวจสอบว่าข้อมูลที่รับมาเป็นข้อมูลวันที่ตามรูปแบบที่กำหนดหรือไม่ เลยจัดแจงเขียน code ดังนี้ เพื่อทำการตรวจสอบ

public static void main(String[] args){
	DateFormat  fmt = new SimpleDateFormat("yyyy/MM/dd", Locale.US);
	try {
		System.out.print(fmt.parse("2011/06/50"));
	} catch (ParseException ex) {
		ex.printStackTrace();
	}
}

ทดลองรันดู โอ้พระเจ้า วันที่ “2011/06/50” กลับถูกต้องไม่ผิดอะไร แสดงผลดังนี้

Wed Jul 20 00:00:00 ICT 2011

ผิดเต็มๆ เลยหาว่าสาเหตุมันคืออะไร จนสุดถ้ายไปพบกับ setLenient
เลยได้รู้ว่าปกติแล้ว จะไม่เข้มงวดในการ parse วันที่ถ้าต้องการให้ตรวจสอบและเข้มงวดต้องกำหนด lenient ดังนี้

	DateFormat  fmt = new SimpleDateFormat("yyyy/MM/dd", Locale.US);
	try {
		fmt.setLenient(false);
		System.out.print(fmt.parse("2011/06/50"));
	} catch (ParseException ex) {
		ex.printStackTrace();
	}

ทดลองรันใหม่ จะได้ผลดังนี้

java.text.ParseException: Unparseable date: "2011/06/50"
        at java.text.DateFormat.parse(DateFormat.java:337)
        at wsews.test.TestEWSWebService.xx(TestEWSWebService.java:57)
        at wsews.test.TestEWSWebService.main(TestEWSWebService.java:25)

แหล่งข้อมูล
setLenient

สถิติจำนวน column ที่มากที่สุดที่พบเจอ

บันทึกไว้เป็นเอกสารหลักฐานหน่อย ในฐานะคนทำงานประสบการณ์น้อย ตั้งแต่ทำงานและเกี่ยวข้องกับการใช้งานฐานข้อมูลและตารางมาอย่างหลีกเลี่ยงไม่ได้ เคยเจอการออกแบบตารางที่มี column มากที่สุดประมาณ 121 column แต่ตอนนี้เจอมากสุดเป็น 486 ถือว่าทำลายสถิติเดิมที่เคยเจอมาจากประสบการณ์ทำงาน

หมายเหตุ : คิดและเข้าใจไปเองว่า สำหรับพวก Datawarehouse คงเป็นเรื่องปกติมาก

Jdeveloper&WebLogic : QTJava.zip was unexpected at this time

เจอปัญหาเกิดตอนรัน Web ที่พัฒนาด้วย Jdeveloper และ WebLogic โดยใช้ Oracle ADF Framework ดังนี้

*** Using port 7101 ***
C:\Users\xxyy\xxx...\bin\startWebLogic.cmd
[waiting for the server to complete its initialization...]
\Java\jre6\lib\ext\QTJava.zip was unexpected at this time.
Process exited.

ตอนแรกคิดว่าเป็นที่ตัว Windows เองหรือเปล่าเพราะผมใช้ Windows 7 64bit และตัว JDK ก็เป็น 64 bit ลองไปตรวจสอบ ตาม path \Java\jre6\lib\ext\ ก็ไม่พบไฟล์ QTJava.zip ลองหาใน path 32 bit ดูก็เจอ เลยทดลองคัดลอกมาไว้ใน path 64 bit แต่ก็ไม่ได้ สุดท้ายต้องพึ่งอาจารย์ google และก็ได้คำตอบสั้นๆ จาก http://forums.oracle.com/forums/thread.jspa?threadID=922895 ทดลองแก้ไขแล้วใช้ได้เลย ถ้าขาดโลก internet ไปนี่ชีวิตโปรแกรม google อย่างผมแย่แน่ๆ

Eclipse : การเปลี่ยนข้อความเป็นตัวอักษรตัวเล็ก และ ตัวใหญ่

ติดนิสัยเรื่องการเปลี่ยนข้อความหรือตัวอักษรให้เป็นตัวใหญ่ และ ตัวเล็กจากการใช้งาน Toad for Oracle และ Notepad++ พอมาใช้ Eclipse ซึ่งก็อยากใช้เหมือนตอนเขียน PL/SQL และเขียน code ใน Notepad++ บ้างเลยไปหาดู shortcut มาได้ดังนี้

Ctrl+Shift+Y สำหรับ เปลี่ยน เป็นตัวเล็ก
Ctrl+Shift+X สำหรับ เปลี่ยน เป็นตัวใหญ่

หมายเหตุ : ใช้ Eclipse ทำมาหากินมานานไม่ได้ใช้เลย

ฝายแม้ว

ปีนี้ยามดีมีโอกาสได้ทำฝากแม้ว เนื่องจากตกงานมาเลี้ยงลูกอยู่บ้าน เลยมีโอกาสได้ช่วยแม่ยายทำฝายแม้ว หน้าแล้งแถวบ้านจะแห้งแล้งได้สมใจจริงๆ แต่พอหน้าฝนก็หาโอกาสท่วมได้ตลอด แม่ยายเลยให้เตรียมเครื่องไม้เครื่องมือในการจัดทำ ดังนี้
1. ซื้อดินสำหรับใส่กระสอบ 250 บาท/รถบรรทุก 6 ล้อ
2. เบิกกระสอบจากผู้ใหญ่บ้านมา 50 ใบ
3. เบิกไม้สำหรับตอกกั้น กระสอบ 25 ต้น

จากนั้นก็ลงมือและลงแรงอย่างเดียวตามขั้นตอนต่อไปนี้
1. ตรวจสอบแหล่งน้ำสำหรับกั้นฝาย ไม่มีปัญหา เพราะทุกปีจะใช้ที่เดิม ซึ่งยังคงมีกระสอบทรายเดิมๆอยู่
2. ใส่ดินที่ซื้อมาลงกระสอบ ซึ่งใช้ไปทั้งสิ้น 35 กระสอบ

Read more