8

我需要知道在android开发中是否有类似时间跨度的东西?

在 C# 中有类似的东西,我喜欢以两种方式使用它:

  1. 生成一个时间跨度,然后添加例如分钟,然后显示整个跨度
  2. 生成两个 DateTime 之间的时间跨度(Android 中 DateTime 的等价物是什么?)
4

6 回答 6

5
public long addSeconds(long dt,int sec) //method to add seconds in time  
{

    Date Dt = new Date(dt);
    Calendar cal = new GregorianCalendar();

    SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy HH:mm:ss");
    sdf.setCalendar(cal);
    cal.setTimeInMillis(Dt.getTime());
    cal.add(Calendar.SECOND, sec);
    return cal.getTime().getTime();

} 

以秒为单位传递日期和时间,它将返回修改后的时间...

于 2012-04-13T08:40:47.430 回答
4

不幸的是,TimeSpanJava 中还没有原生可用的类似类,但您可以通过几行代码来实现这一点。

Calendar startDate = getStartDate();
Calendar endDate = getEndDate();

long totalMillis = endDate.getTimeInMillis() - startDate.getTimeInMillis();
int seconds = (int) (totalMillis / 1000) % 60;
int minutes =  ((int)(totalMillis / 1000) / 60) % 60;
int hours = (int)(totalMillis / 1000) / 3600;
于 2012-04-13T07:08:16.120 回答
3

Android有DateUtils,如果你给它正确的输入,方法“formatElapsedTime”可以满足你的需要。

于 2012-12-13T19:36:25.763 回答
1

您可以轻松获得以毫秒为单位的“TimeSpan”。要将毫秒转换为格式化的毫秒,您可以像这样在函数中进行一些快速而优雅的计算,

public static String GetFormattedTimeSpan(final long ms) {
    long x = ms / 1000;
    long seconds = x % 60;
    x /= 60;
    long minutes = x % 60;
    x /= 60;
    long hours = x % 24;
    x /= 24;
    long days = x;

    return String.format("%d days %d hours %d minutes %d seconds", days, hours, minutes, seconds);
}
于 2015-07-15T05:35:32.643 回答
0

您可以使用日历类。

http://tutorials.jenkov.com/java-date-time/java-util-calendar.html

于 2012-04-13T07:05:01.210 回答
0

Java 中的日期很尴尬。看看https://github.com/dlew/joda-time-android

于 2014-08-27T11:19:24.247 回答