|
|
|
C# ถามเกี่ยวกับการ Convert string to DateTime หน่อยครับ |
|
|
|
|
|
|
|
การแสดงผลค่าปีของ function ใน .NET Framework นั้นจะขึ้นอยู่กับ regional setting ที่กำหนดไว้ในแต่ละเครื่องด้วยนะครับ แต่ถ้าต้องการให้แน่ใจเลยว่าค่า ปีที่ต้องการนั้น เป็นไปอย่างที่ต้องการแน่ๆ ให้กำหนดดังนี้
1. การ assign ค่าเข้าตัวแปร date, datetime
Code (VB.NET)
dim _dt as DateTime
_dt = New DateTime(2012,1, 7)
การกำหนดค่าวันที่ให้ตัวแปร _dt ประเภท DateTime ข้างต้นนั้น ค่าของ ปี จะถูกบังคับให้ระบุเป็นปี คริสศักราช เท่านั้น ถ้าใส่เป็น 2555 code ไม่ผิด แต่ค่าที่ assign ให้จะเป็น ปี คศ.2555 ครับ
ดังนั้นถ้ารับค่ามาจาก TextBox ที่เป็น String ซึ่งมีค่าเท่ากับ "07/01/2555" และจะเก็บเข้าตัวแปร DateTime จะต้องเขียน code ดังนี้
Code (VB.NET)
_dt = New DateTime(Integer.Parse(Right(TextBox1.Text, 4) - 543), Integer.Parse(Mid(TextBox1.Text, 4, 2)), Integer.Parse(Left(TextBox1.Text, 2)))
2. การ display ค่าของตัวแปร date, datetime
Code (VB.NET)
dim _dt as Date = now
dim _dtStr as String
_dtStr = Format(_dt.Day, "00") & "/" & Format(_dt.Month, "00") & "/" & Format(_dt.Year + 543, "0000")
กรณีนี้จะแสดงผลเป็น "07/01/2555" ตลอด เนื่องจาก method Year ของ Date จะคืนค่าเป็นปี คศ. เท่านั้น ดังนั้น เมื่อ บวกเพิ่มไปอีก 543 จึงมีผลลัพท์ เท่ากับ ปี พศ. ครับ
นี่เป็นเพียงวิธีหนึ่งนะครับ ยังมีอีกหลายวิธี แต่ที่ผมใช้อยู่และ แน่นอนที่สุดก็เป็นวิธีนี้ครับ ดู code แล้วเข้าใจง่าย maintain ง่ายด้วยครับ ไม่สนใจว่า regional setting จะเป็น คศ. หรือ พศ. ครับ
|
|
|
|
|
Date :
2012-01-07 13:08:31 |
By :
fhackman |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (C#)
string myDateTimeString;
myDateTimeString = "19 Feb,2008";
DateTime dt;dt = Convert.ToDateTime(myDateTimeString);
Response.Write(dt.Day + "/" + dt.Month + "/" + dt.Year);
|
|
|
|
|
Date :
2012-06-07 06:27:10 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|