如何以毫秒显示毫秒:小时:分钟:秒

这是我目前所拥有的

Seconds = (60 - timeInMilliSeconds / 1000 % 60); Minutes = (60 - ((timeInMilliSeconds / 1000) / 60) %60); 

我觉得是正确的。 几个小时和几天应该像 –

 Hours = ((((timeInMilliSeconds / 1000) / 60) / 60) % 24); Days = ((((timeInMilliSeconds / 1000) / 60) / 60) / 24) % 24; 

接着-

 TextView.SetText("Time left:" + Days + ":" + Hours + ":" + Minutes + ":" + Seconds); 

但我的时间和日子出来是不正确的

  • 每秒更新TextView
  • 在Graphview库中使用date
  • Android获取当前date并在TextView中显示
  • 在24小时的时间表上获取当前时间和date
  • Android DatePicker仅更改为“月”和“年”
  • 如何在Android上进行date微调
  • Java月最后一天的问题
  • 如何在Android中添加date
  • 计算时间的一个简单的方法是使用类似的东西

     long seconds = timeInMilliSeconds / 1000; long minutes = seconds / 60; long hours = minutes / 60; long days = hours / 24; String time = days + ":" + hours % 24 + ":" + minutes % 60 + ":" + seconds % 60; 

    如果你有超过28天,这将工作,但如果你有一个负面的时间,这将工作。

    SimpleDateFormat是你的朋友! (我今天才发现,真棒。)

     SimpleDateFormat formatter = new SimpleDateFormat("dd:HH:mm:ss", Locale.UK); Date date = new Date(timeInMilliSeconds); String result = formatter.format(date); 

    要在android中格式化elapsed /剩余时间,请使用android.text.format.DateUtils ,特别是getRelativeTimeSpanStringformatElapsedTime

    您也可以使用joda-time API( http://joda.org/joda-time/

    “类DateTimeFormat提供了一种支持Pattern(模式格式)的Pattern(String)的方法,这些”基于模式“的格式化程序提供了类似于SimpleDateFormat的方法。

     LocalDate date = LocalDate.now(); DateTimeFormatter fmt = DateTimeFormat.forPattern("d MMMM, yyyy"); String str = date.toString(fmt);