【问题标题】:How to convert number to hour and minute in android如何在android中将数字转换为小时和分钟
【发布时间】:2017-05-29 04:36:14
【问题描述】:

在我的应用程序中,我应该显示小时和分钟,并且我使用此示例从 server 获取此数字:
Json

{
  data:{
    time:84561
  }
}

我应该从 time 获取这个 number 并以这种格式显示它

**hh : mm : ss**

我可以获得次数,但我无法将其转换为**hh : mm : ss**

怎么办?

【问题讨论】:

  • 这个数字代表什么?秒还是毫秒?
  • 这个answer 可能对你有帮助。
  • @Abhishek,秒。你能帮助我吗?请
  • 将其转换为毫秒,然后使用 Date 类得到你想要的。
  • DateUtils#formatElapsedTime

标签: android json date-format


【解决方案1】:
long timeSec= 84561;// Json output
int hours = (int) timeSec/ 3600;
int temp = (int) timeSec- hours * 3600;
int mins = temp / 60;
temp = temp - mins * 60;
int secs = temp;

String requiredFormat = hours+ ": "+mins+": "+secs;//hh:mm:ss formatted string

【讨论】:

    【解决方案2】:

    Java 9 答案

        Duration time = Duration.ofSeconds(87561);
        String hms = String.format("%02d : %02d : %02d", 
                time.toHoursPart(), 
                time.toMinutesPart(), 
                time.toSecondsPart());
    

    不幸的是,Java 8 Duration 不适合格式化。我在 sn-p 中使用的方法是在 Java 9 中引入的,将计算 hh、mm 和 ss 的值。然后String.format() 完成剩下的工作。

    我知道您(还)不能在 Andriod 上使用它,但我想在这里为现在或将来可以使用 Java 9 的其他人提供这个答案。

    【讨论】:

      【解决方案3】:

      很简单

      如果这是 unix 时间,那么它将使用这个 sn-p 转换为人类可读的时间格式。

      String relavtiveTimeString = String.valueOf(DateUtils.getRelativeTimeSpanString(unixTime));
      

      您可以使用new Date(unix); 并通过以下函数获取格式化日期。您可以格式化为不同的样式。

      //This mehtod convert the date into standard date like : 2017-12-23
          public static String getformateDate(Date dateObject) {
              SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
              return dateFormat.format(dateObject);
          }
      

      有关更多信息,请查看此链接已回答: Convert unix time stamp to date in java

      参考:

      1. https://developer.android.com/reference/android/text/format/DateUtils.html

      2. https://developer.android.com/reference/android/text/format/Time.html

      【讨论】:

        【解决方案4】:

        传递您的数字或时间戳并将小时和分钟转换为毫秒。使用以下代码。

         public static String getCurrentTimeStamp(String mCurrentTime) {
                SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy  hh:mm a z");
                TimeZone tz = TimeZone.getDefault();
                format.setTimeZone(tz);
                //  System.out.println("TimeZone   "+tz.getDisplayName(false, TimeZone.SHORT)+" Timezon id :: " +tz.getID());
                SimpleDateFormat dateParser = new SimpleDateFormat("dd/MM/yyyy  hh:mm a z");
                Date dateTime = null;
                try {
                    dateTime = dateParser.parse(format.format(Long.parseLong((mCurrentTime)) * 1000));
                    Log.e("Starttime", "Starttime" + format.format(dateTime));
                    return format.format(dateTime);
                } catch (ParseException e) {
                    e.printStackTrace();
                    return null;
                }
            }
        

        【讨论】:

        • 只需将simpledateformat改成下面的代码即可。SimpleDateFormat formatter = new SimpleDateFormat("dd:HH:mm:ss", Locale.UK);
        【解决方案5】:

        试试这个逻辑 根据需求使用它

        public class Test {
        
        public static void main(String[] args) {
        
            String json = "{\n" +
                    "  data:{\n" +
                    "    time:84561\n" +
                    "  }\n" +
                    "}";
        
            Date date = new Gson().fromJson(json, Date.class);
        
            long milli = date.getTime() * 1000;
        
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm:ss");
        
            System.out.println(simpleDateFormat.format(new java.util.Date(milli)));
        
        }
        
        class Date implements Serializable{
        
            int time;
        
        
            public int getTime() {
                return time;
            }
        
            public void setTime(int time) {
                this.time = time;
            }
        }
        

        输出

        05:30:00

        如果你想下载Gson jar,请从

        here

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-02-22
          • 2019-10-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-02-22
          • 2015-07-20
          相关资源
          最近更新 更多