在我們的應用,所有DateTime
對象存儲在UTC
和在我們的框架轉換成一個適當的表示通過一個輔助方法:
public static string ToString(DateTime? date, string format)
{
if (date.HasValue)
return String.Format("{0:}"+format, date);
else return "";
}
其中格式是從我們的存儲的語言檢索。
decimal
表示貨幣的屬性也由我們的框架中的幫助器方法轉換。爲此,我們使用NumberFormatInfo
:
numberFormat = new NumberFormatInfo();
numberFormat.CurrencyDecimalSeparator = ".";
numberFormat.CurrencyGroupSeparator = "";
numberFormat.NumberDecimalSeparator = ".";
numberFormat.NumberGroupSeparator = "";
然後使用創建NumberFormatInfo
:
price.ToString(numberFormat);
這種方法的最大優點是,你可以創建你自己的喜好,儘管作爲什麼別人的思想邏輯並且這些方法支持自定義用戶設置。
缺點是,您需要爲您支持的每個國家/地區創建語言和格式。
謝謝你的回答。儘管如此,即使我詢問用戶有關其顯示數字和貨幣的方式,但日期也存在問題...... 2017年7月20日星期四,美國時間2017年7月20日,星期四,美國時間美國時間上午7:24 ,在歐盟19:24(不是PM,AM)。有關這些的任何想法? – Panos
@Panos同樣的解決方案,不同的技術。包括用於在用戶的區域設置中顯示日期的格式。它通常由3個元素組成: 1.顯示星期幾,顯示星期幾,星期幾的縮寫。 (Excel中的長期日期) 2.是否顯示上午/下午時間,數字時間或沒有時間。 3.什麼格式顯示日期(2017/07/13,2017/13/07或2017年7月13日 )將這三個字符串區域設置值合併到正確的.ToString()模板值中,然後簡單地把它傳遞給任何方法將日期轉換爲字符串。 – Chrotenise