簡體   English   中英

如何將十進制值格式化為小時和分鍾?

[英]How can i format a decimal value into hours and minutes?

例如,如果用戶輸入為1.71(1小時71分鍾),那么我想將其轉換為2.11(2小時11分鍾)

DecimalFormat time = new DecimalFormat("##.## p.m");

int userInput = 1.71;

System.out.print(time.format(userInput));

將輸入解析為日期,然后將日期格式化為輸出格式:

  Scanner sc = new Scanner(System.in);
  DateFormat df = new SimpleDateFormat("HH.mm");
  DateFormat dfout = new SimpleDateFormat("H.mm a");
  Date date  = df.parse(sc.next());
  System.out.println(dfout.format(date));

我不確定我是否正確回答了您的問題,但是以下工作不應該嗎?

int hours = (int)userInput;
decimal minutestmp = ((userInput - hours) * 60);
int minutes = (int)minutestmp;

String TimeString = hours + ":" + minutes;
Date date = new SimpleDateFormat("HH:mm").parse(TimeString);
String newTimeString = new SimpleDateFormat("H:mm").format(date);

ISO 8601

日期時間字符串的ISO 8601標准定義了所謂的持續時間格式: PnYnMnDTnHnMnS

喬達時間

Joda-Time庫知道如何解析和生成此類字符串。

因此,首先,將您的輸入轉換成這樣的字符串。 然后將該新字符串輸入到Joda-Time中。 最后,讓Joda-Time重新計算小時和分鍾。 所有這些已在StackOverflow上多次討論。 請搜索詳細信息。

要翻譯該輸入,請替換句點,並在其前面和后面追加。

String d = "PT" + "1.71".replace( ".", "H") + "M";  // PT1H71M

訂閱Joda-Time。

Period period = Period.parse( d );

標准化分鍾。

Period p = period.normalizedStandard();

或者,您可以拆開輸入的小時和分鍾部分,然后將它們作為整數提供給Period的構造函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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