[英]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標准定義了所謂的持續時間格式: 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.