Convert Datetime จาก ค.ศ. เป็น พ.ศ. ใน Razor Template

ใน C# ที่ใช้ Razor Template Engine เช่นในแอพที่เป็น MVC หรือเอา RazorLight Package มาใช้ในการ render ตอนเวลาต้องการ render วันที่ที่เป็น string ที่เป็นปี ค.ศ. เช่น “2018-02-17T01:22:38” ให้เป็นปี พ.ศ. จะต้องทำการ convert ก่อน โดยอาจจะ convert ตั้งแต่ใน app เอง หรือจะ convert ใน template ก็ได้

ถ้าต้องการ convert ใน template สามารถทำได้ด้วยวิธีนี้

@using System
@using System.Globalization
@{
    var ISOFormat = "s";
    var ThaiCulture = new CultureInfo("th-TH");
    var ConfirmDate = DateTime.ParseExact(Model.ConfirmDate, ISOFormat, CultureInfo.InvariantCulture);
    var ConfirmDateTH = Convert.ToDateTime(ConfirmDate, ThaiCulture);
}

วันที่ @Raw(@ConfirmDateTH.ToString("dd MMM yyyy", ThaiCulture))

ในบรรทัดสุดท้ายจะเป็นตอนที่เอาไปแสดงผล

ง่าย ๆ เท่านี้เลย

Leave a Reply