簡體   English   中英

小數點(。)作為Java應用程序中的分隔符,而逗號(,)作為Oracle數據庫中的分隔符

[英]Decimal point (.) as separator in java application and comma (,) separator in Oracle database

這個問題不是那么容易解決。

  1. 使用以下代碼,

     Locale.setDefault(new Locale("fr", "FR")); 

    浮動格式為123 456,45,日期格式為2015年3月30日。

  2. 使用以下代碼,

     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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM