fun Long.toTimeAgo(): String {
val time = this
val now = System.currentTimeMillis()
// convert back to second
val diff = (now - time) / 1000
return diff.toString()
}
要获得社交格式的结果,可以将代码修改为:
fun Long.toTimeAgo(): String {
val time = this
val now = System.currentTimeMillis()
// convert back to second
val diff = (now - time) / 1000
return when {
diff < MINUTE -> "Just now"
diff < 2 * MINUTE -> "a minute ago"
diff < 60 * MINUTE -> "${diff / MINUTE} minutes ago"
diff < 2 * HOUR -> "an hour ago"
diff < 24 * HOUR -> "${diff / HOUR} hours ago"
diff < 2 * DAY -> "a day ago"
diff < 30 * DAY -> "${diff / DAY} days ago"
diff < 2 * MONTH -> "a month ago"
diff < 12 * MONTH -> "${diff / MONTH} months ago"
diff < 2 * YEAR -> "a year ago"
else -> "${diff / YEAR} years ago"
}
}
现在在代码中,从字符串中的日期获取时间差,可以用途:
val date = SimpleDateFormat('your date pattern').parse(dateString)
val timeString = date.time.toTimeAgo()
Try simple piece of code using For 24 hour time
StartTime = "10:00";
EndTime = "13:00";
here starthour=10 and end hour=13
if(TextUtils.isEmpty(txtDate.getText().toString())||TextUtils.isEmpty(txtDate1.getText().toString())||TextUtils.isEmpty(txtTime.getText().toString())||TextUtils.isEmpty(txtTime1.getText().toString()))
{
Toast.makeText(getApplicationContext(), "Date/Time fields cannot be blank", Toast.LENGTH_SHORT).show();
}
else {
if (starthour > endhour) {
Toast.makeText(getApplicationContext(), "Start Time Should Be Less Than End Time", Toast.LENGTH_SHORT).show();
} else if (starthour == endhour) {
if (startmin > endmin) {
Toast.makeText(getApplicationContext(), "Start Time Should Be Less Than End Time", Toast.LENGTH_SHORT).show();
}
else{
tvalid = "True";
}
} else {
// Toast.makeText(getApplicationContext(),"Sucess"+(endhour-starthour)+(endmin-startmin),Toast.LENGTH_SHORT).show();
tvalid = "True";
}
}
same for date also
8条答案
按热度按时间2ul0zpep1#
试试下面的代码。
//假设时间格式为**(“hh:mm a”)**格式
产量-小时数::8
6za6bjd02#
注:以下由Chirag Raval提供的代码已更正,因为在Chirag提供的代码中,当我们尝试查找22:00至07:00的时间时,出现了一些问题。
结果将是:小时:9,分钟:0
ojsjcaue3#
看看DateFormat,你可以用它来解析你的字符串parse(String source)方法,你可以很容易地操作两个Dates对象来获得你想要的。
对于日期差异
显示日期:
balp4ylt4#
请试试这个。。。
plupiseo5#
我想提供一个现代的答案。
java.time和ThreeTenABP
此代码段的输出为:
小时和分钟格式的TotalTime为08:00
(在Java 1.7.0_67上测试,带有ThreeTen Backport。)
其他答案中使用的datetime类-
SimpleDateFormat
,Date
,DateFormat
和Calendar
-都是过时的,设计很差。可能更糟的是,一个答案是“手工”解析和计算,而不需要任何库类的帮助。这是复杂和容易出错的,从来没有推荐。相反,我使用的是java.time,现代的Java日期和时间API。和它一起工作要好得多。问题:我可以在Android上使用java.time吗?
是的,java.time在较旧和较新的Android设备上都能很好地工作。它至少需要Java 6。
org.threeten.bp
导入日期和时间类及其子包:org.threeten.bp.Duration
、org.threeten.bp.LocalTime
和org.threeten.bp.format.DateTimeFormatter
。友情链接
java.time
是首次描述的。java.time
到Java 6和7的后端(JSR-310的ThreeTen)。vshtjzan6#
我的输出是E/App---Time:361分钟
b1payxdu7#
你可以在Kotlin中这样使用扩展函数:
要获得社交格式的结果,可以将代码修改为:
现在在代码中,从字符串中的日期获取时间差,可以用途:
8cdiaqws8#