我正在添加这个问题,因为我是Java和Android的新手,我搜索了几个小时试图解决这个问题.答案来自相关答案的组合,所以我想我会记录我为其他可能正在努力的人学到的东西.见答案.
对于一些背景知识,我的经验主要是PHP的Web开发和一点Ruby.我唯一的操作系统是Linux(Ubuntu Studio),我(不情愿地)在Android Studio 2.1.2中开发我的第一个Android应用程序.我的Java设置如下:
>java -version
> openjdk version "1.8.0_91"
> OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-3ubuntu1~15.10.1-b14)
> OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
Run Code Online (Sandbox Code Playgroud) datetime android android-gradle-plugin threetenbp threetenabp
我有字符串发布日期,如:
2011-03-27T09:39:01.607
Run Code Online (Sandbox Code Playgroud)
并且有当前日期.
我希望以下列形式区分这两个日期:
2 days ago
1 minute ago etc..
Run Code Online (Sandbox Code Playgroud)
取决于发布日期.
我使用此代码将发布日期转换为毫秒:
public long Date_to_MilliSeconds(int day, int month, int year, int hour, int minute) {
Calendar c = Calendar.getInstance();
c.set(year, month, day, hour, minute, 00);
return c.getTimeInMillis();
}
Run Code Online (Sandbox Code Playgroud)
这个当前日期: long now = System.currentTimeMillis();
并计算差异:
String difference = (String) DateUtils.getRelativeTimeSpanString(time,now, 0);
Run Code Online (Sandbox Code Playgroud)
但它返回像May 1 , 1970或什么..
如何区分过帐日期和当前日期.
抱歉,如果类似问题被问了太多次,但我找到的每个答案似乎都有一个或多个问题。
我有一个字符串形式的日期:例如:“04112005”
这是约会。2005 年 11 月 4 日。
我想获得当前日期和此日期之间的年数和天数差异。
到目前为止,我的代码获取年份并减去它们:
fun getAlderFraFodselsdato(bDate: String): String {
val bYr: Int = getBirthYearFromBirthDate(bDate)
var cYr: Int = Integer.parseInt(SimpleDateFormat("yyyy").format(Date()))
return (cYr-bYr).toString()
}
Run Code Online (Sandbox Code Playgroud)
但是,自然而然,这是非常不准确的,因为不包括月份和日期。
我尝试了几种方法来创建 Date、LocalDate、SimpleDate 等对象,并使用它们来计算差异。但出于某种原因,我没有让他们中的任何一个工作。
我需要创建当前年、月和日的日期(或类似)对象。然后我需要从一个包含月份和年份(“04112005”)的字符串创建相同的对象。然后我需要得到这些之间的差异,以年、月和日为单位。
所有提示表示赞赏。
我需要在两个日期之间找到一个时间。让我们说dateStart = 1470712122173和dateStop = 1470712127320。这两个日期之间的差异等于5147
所以,根据这个我希望得到一个答案 = 5 秒,但我看到19:00:05. 这19个小时从哪里来?
毫秒代码 (= 5147) -> 时间:
private string foo(long dateStart, long dateStop) {
long diff = dateStop - dateStart;
DateFormat simple = SimpleDateFormat.getTimeInstance();
Date date = new Date(diff);
return simple.format(date);
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的解释。