如果我运行以下程序,它解析引用时间间隔为1秒的两个日期字符串并比较它们:
public static void main(String[] args) throws ParseException {
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str3 = "1927-12-31 23:54:07";
String str4 = "1927-12-31 23:54:08";
Date sDt3 = sf.parse(str3);
Date sDt4 = sf.parse(str4);
long ld3 = sDt3.getTime() /1000;
long ld4 = sDt4.getTime() /1000;
System.out.println(ld4-ld3);
}
Run Code Online (Sandbox Code Playgroud)
输出是:
353
为什么ld4-ld3不1(正如我所期望的那样,在时间上只有一秒钟的差异),但是353?
如果我将日期更改为1秒后的时间:
String str3 = "1927-12-31 23:54:08";
String str4 = "1927-12-31 23:54:09";
Run Code Online (Sandbox Code Playgroud)
然后ld4-ld3会1.
Java版本:
java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04) …Run Code Online (Sandbox Code Playgroud) 我有一个TimeSpan代表客户端连接到我的服务器的时间.我想将其显示TimeSpan给用户.但我不想过于冗长地显示那些信息(例如:2小时3分钟32.2345秒=太详细了!)
例如:如果连接时间是......
> 0 seconds and < 1 minute -----> 0 Seconds
> 1 minute and < 1 hour -----> 0 Minutes, 0 Seconds
> 1 hour and < 1 day -----> 0 Hours, 0 Minutes
> 1 day -----> 0 Days, 0 Hours
Run Code Online (Sandbox Code Playgroud)
当然,在数字为1(例如:1秒,1分钟,1小时,1天)的情况下,我想使文本单数(例如:1秒,1分钟,1小时,1天) .
无论如何,如果没有一组巨大的if/else子句,可以轻松实现吗?这是我目前正在做的事情.
public string GetReadableTimeSpan(TimeSpan value)
{
string duration;
if (value.TotalMinutes < 1)
duration = value.Seconds + " Seconds";
else if (value.TotalHours < 1)
duration = value.Minutes + " Minutes, " …Run Code Online (Sandbox Code Playgroud) 如果我有两个约会,那么我会在几天内得到它们之间的区别像这篇文章.
如何在以下视图中详细说明:
将日期转换为(number of years,number of months and the rest in the number of days)