Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自动更新聊天时间_Java_Android_Time - Fatal编程技术网

Java 自动更新聊天时间

Java 自动更新聊天时间,java,android,time,Java,Android,Time,我们怎样才能有时间 例如: 1分钟前 1秒前 今天 昨天 星期二 7天前(1周前)必须显示日期。如果您要保存日期,您可以使用句点: DateTime myDate = new DateTime(1978, 3, 26, 12, 35, 0, 0); DateTime now = new DateTime(); Period period = new Period(myDate, now); PeriodFormatter formatter = new PeriodFormatterBuild

我们怎样才能有时间

例如:

1分钟前
1秒前
今天
昨天
星期二


7天前(1周前)必须显示日期。

如果您要保存日期,您可以使用句点:

DateTime myDate = new DateTime(1978, 3, 26, 12, 35, 0, 0);
DateTime now = new DateTime();
Period period = new Period(myDate, now);

PeriodFormatter formatter = new PeriodFormatterBuilder()
    .appendSeconds().appendSuffix(" seconds ago\n")
    .appendMinutes().appendSuffix(" minutes ago\n")
    .appendHours().appendSuffix(" hours ago\n")
    .appendDays().appendSuffix(" days ago\n")
    .appendWeeks().appendSuffix(" weeks ago\n")
    .appendMonths().appendSuffix(" months ago\n")
    .appendYears().appendSuffix(" years ago\n")
    .printZeroNever()
    .toFormatter();

String elapsed = formatter.print(period);
System.out.println(elapsed);
印刷品:

3 seconds ago
51 minutes ago
7 hours ago
6 days ago
10 months ago
31 years ago

我使用DateUtils.getRelativeTimeSpanString()做了类似的事情

它将在>1周的日期返回

public String timeSinceNow(Date date) {
    long test = date.getTime();
    String result = "";

    long millis = System.currentTimeMillis();

    long milliseconds = (millis - test);
    long minutes = 0;
    long hours = 0;
    long days = 0;

    days = (int) (milliseconds / (1000 * 60 * 60 * 24));
    hours = (int) ((milliseconds - (1000 * 60 * 60 * 24 * days)) / (1000 * 60 * 60));
    minutes = (int) (milliseconds - (1000 * 60 * 60 * 24 * days) - (1000 * 60 * 60 * hours)) / (1000 * 60);

    if (days > 0 || hours > 0 || minutes > 0) {
        if (hours > 0) {
            if (minutes > 0) {
                if (days == 0) {
                    if (hours == 0) {
                        if (minutes < 3) {
                            result = "Now";
                        } else {
                            result = (String) DateUtils.getRelativeTimeSpanString(test, System.currentTimeMillis(), 0);
                        }
                    } else {
                        result = (String) DateUtils.getRelativeTimeSpanString(test, System.currentTimeMillis(), 0);
                    }
                }
                else{
                        result = (String) DateUtils.getRelativeTimeSpanString(test, System.currentTimeMillis(), 0);
                    }

            }else{
                result = (String) DateUtils.getRelativeTimeSpanString(test, System.currentTimeMillis(), 0);
            }
        }else{
            result = (String) DateUtils.getRelativeTimeSpanString(test, System.currentTimeMillis(), 0);
        }
    } else {
        result = "Now";
    }

    return result;
}
公共字符串timeSinceNow(日期){
长测试=date.getTime();
字符串结果=”;
长毫秒=System.currentTimeMillis();
长毫秒=(毫秒-测试);
长分钟=0;
长时间=0;
长天数=0;
天数=(整数)(毫秒/(1000*60*60*24));
小时=(整数)((毫秒-(1000*60*60*24*天))/(1000*60*60));
分钟=(整数)(毫秒-(1000*60*60*24*天)-(1000*60*60*小时))/(1000*60);
如果(天>0 | |小时>0 | |分钟>0){
如果(小时数>0){
如果(分钟>0){
如果(天数==0){
如果(小时==0){
如果(分钟<3){
result=“现在”;
}否则{
结果=(字符串)DateUtils.getRelativeTimeSpanString(test,System.currentTimeMillis(),0);
}
}否则{
结果=(字符串)DateUtils.getRelativeTimeSpanString(test,System.currentTimeMillis(),0);
}
}
否则{
结果=(字符串)DateUtils.getRelativeTimeSpanString(test,System.currentTimeMillis(),0);
}
}否则{
结果=(字符串)DateUtils.getRelativeTimeSpanString(test,System.currentTimeMillis(),0);
}
}否则{
结果=(字符串)DateUtils.getRelativeTimeSpanString(test,System.currentTimeMillis(),0);
}
}否则{
result=“现在”;
}
返回结果;
}

这将返回一个字符串,其中包含“Now”和您作为参数传递的日期之间的差值

类似问题已在此处多次询问,请在询问之前使用搜索…感谢您的所有回复,可能会重复,但我需要一次实现多个功能,因此我在此处搜索时仅使用ago方法,没有用一种方式显示一个小时前或者一起约会这就是为什么,我需要在这里问这个问题,非常感谢,很高兴我能帮上忙。