java - 将分钟转换为 24 小时格式 Android 应用程序

标签 java android

我需要在我的应用程序中将分钟转换为 24 小时格式,例如我的应用程序有一个方法 返回以分钟为单位的时间 260,如何将此时间转换为 24 格式?

非常感谢,,

--- 更新后 ------------------------------------------ ----------------------------

//Inside OnCreate Method

//For Time Part#1
CaseDurationH.setOnItemSelectedListener(new OnItemSelectedListener() {

             public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {

                 int i = CaseDurationH.getSelectedItemPosition();
                 strH = parent.getSelectedItem().toString();

                 try { 
                  intH = Integer.parseInt(strH); 
                  intHInMin=intH*60; // inH and intHInMin are a integer
                } catch (NumberFormatException nfe) { 

                } 


                 if(i==2){

                     CaseDurationM.setEnabled(false);

                 }

                 if(strH.equals("hr0"))

                         {

                 CaseDurationM.setEnabled(true);

                     }



                 if(strH.equals("hr1"))

                         {

                 CaseDurationM.setEnabled(true);

                     }





                 if(strH.equals("hr2"))

                         {

                     CaseDurationM.setEnabled(false);  

                     }


             }

             public void onNothingSelected(AdapterView<?> arg0) {

                 // TODO Auto-generated method stub



             } });

//For Time Part#2
        CaseDurationM.setOnItemSelectedListener(new OnItemSelectedListener() {

             public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {

                 int i = CaseDurationM.getSelectedItemPosition();
                 strM = parent.getSelectedItem().toString();


                 try { 
                      intM = Integer.parseInt(strM); 

                    } catch (NumberFormatException nfe) { 

                    } 





             }

             public void onNothingSelected(AdapterView<?> arg0) {

                 // TODO Auto-generated method stub



             } });

  String CaseTime= calc();
  case1.setTime(CaseTime); //case1 is an Onbject 



//Out OnCreate Method
private String calc() {

                      int CTimeTotalInMin= intHInMin + intM;
          Calendar calendar = new GregorianCalendar();

          int CurrentHour = calendar.get(Calendar.HOUR);
          int CurrentMinute = calendar.get(Calendar.MINUTE);
          int CurrentTime= (CurrentHour * 60)+ CurrentMinute;
          int TotalTimeInMin= CurrentTime-CTimeTotalInMin;
          int hours = TotalTimeInMin / 60; 
          int minutes = TotalTimeInMin % 60;  
          if(hours>23) 
             hours = hours % 24; 

       String g = ""+hours+":"+minutes;



         return g;}
<小时/>

我的问题是:如何获取(当前时间 - 用户从微调器中选择的时间 (我向用户显示两个小时列表(0h 或 1h 或 2h)和分钟列表(从 0-59),如下所示, 例如,如果用户选择 (1 小时) 并且当前时间是 (2:15 PM),则答案应该是 = 13:15 PM),我尝试了此代码,但它与 PM 和 AM 没有什么不同? 有什么建议吗?非常感谢...

<!-- @ string.xml these imtes for CDurationH= hours -->
    <string name="hr0">0</string>  
    <string name="hr1">1</string>  
    <string name="hr2">2</string> 
<!-- @ string.xml these imtes for CDurationM= minutes --> 
    <string name="min0">0</string> 
    <string name="min5">5</string> 
    <string name="min10">10</string>  
    <string name="min15">15</string> 
    <string name="min20">20</string>  
    <string name="min25">25</string>  
    <string name="min30">30</string> 
    <string name="min35">35</string>  
    <string name="min40">40</string>  
    <string name="min45">45</string> 
    <string name="min50">50</string>  
    <string name="min55">55</string>  
    <string name="min59">59</string> 
<小时/>

最佳答案

通过除法和模运算符计算小时和分钟值。 检查可能的小时值是否大于 23,表明超出了白天。 设置您的值的格式以表示为 24 小时格式:

int minutes = 260;
int hours = minutes / 60;
int minutesInDisplay = minutes % 60;
if (hours > 23)
    hours = hours % 24;
String postfix = (hours < 12) ? "am" : "pm";
NumberFormat formatter = new DecimalFormat("00");
String display = formatter.format(hours) + ":"
        + formatter.format(minutesInDisplay);
System.out.println("24 hour formatted time: " + display + " " + postfix);

关于java - 将分钟转换为 24 小时格式 Android 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9529911/

相关文章:

java - JPA : How to define @NamedEntityGraph for 3 levels?

java - 编写与Java变量声明相关的自定义规则

java - 无法从TemporalAccessor获取即时消息:{},ISO解析为java.time.format.Parsed类型的2018-01-01

android - Gson:解析对象内部数组中的对象

javascript - 小屏幕 float 内容/额外宽度

android - 在 android 中链接文本

java - Spring Boot 2.3.1.Release 和 Cassandra DriverTimeout 问题

java - 滚动问题(Java-JFrame-JScrollBar)

android - 在 Android 音乐应用程序中显示专辑封面

java - 安卓工作室错误 : app:mergeDebugResources