如何在android中将数字转换为小时和分钟

时间:2017-05-29 04:36:14

标签: android json date-format

在我的应用程序中,我应该显示小时和分钟,我从服务器获取此数字: Json

{
  data:{
    time:84561
  }
}

我应该从时间获得数字并以此格式显示

**hh : mm : ss**

我可以获得一些时间,但我无法将其转换为**hh : mm : ss**

我怎么能?

5 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

Java 9回答

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

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

我知道你不能在Andriod上使用它(但是),但是我希望这个答案可以代表现在或将来可以使用Java 9的其他人。

答案 2 :(得分:1)

非常简单

如果这是unix时间,那么将使用此片段将其转换为人类可读的时间格式。

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

Referance:

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

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

答案 3 :(得分:0)

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

 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;
        }
    }

答案 4 :(得分:0)

尝试此逻辑根据要求使用

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;
    }
}

<强>输出

  

5时30分00秒

     

如果你想下载Gson jar,请从

下载

here