[英]Decimal point (.) as separator in java application and comma (,) separator in Oracle database
這個問題不是那么容易解決。
使用以下代碼,
Locale.setDefault(new Locale("fr", "FR"));
浮動格式為123 456,45,日期格式為2015年3月30日。
使用以下代碼,
Locale.setDefault(new Locale("en", "US"));
浮動格式為123,456.45,日期格式為2015年3月30日。
如何將默認Locale
為123,456.45和2015年3月30日? 我的意思是浮點數的英語格式,日期和其他屬性的法語格式? 是否可以將法語設置為Locale並僅將小數點更改為點(。)?
我要解決的問題如下:我想使用jdbcTemplate以及float和date參數從java調用PL / SQL過程。 數據庫設置為點(。)作為小數點分隔符和組逗號。 Java應用程序的默認語言環境設置為法語(fr_FR)。 但是在執行應用程序時,由於十進制分隔符不同,因此PL / SQL過程中會引發錯誤。 日期格式在數據庫和Java應用程序中相同。 我無法更改數據庫設置。 如何執行沒有錯誤的PL / SQL過程?
謝謝您幫忙。
您不必每次都要格式化默認的Locale
。 NumberFormat
類和DateFormat
類都具有用於獲取特定語言環境中的數字和日期格式程序的靜態方法。
對於NumberFormat
,請使用以Locale
作為參數的getNumberInstance
方法 。
double value = 123456.45;
NumberFormat english = NumberFormat.getNumberInstance(new Locale("en", "US"));
System.out.println(english.format(value));
輸出:
123,456.45
對於DateFormat
,請使用以Locale
作為參數的getDateInstance
方法 。
Date now = new Date();
DateFormat french = DateFormat.getDateInstance(DateFormat.MEDIUM, new Locale("fr", "FR"));
System.out.println(french.format(now));
輸出:
30 mars 2015
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.