@@ -189,9 +189,7 @@ public static long getTimeSpan(final String time1,
189
189
final String time2 ,
190
190
@ NonNull final DateFormat format ,
191
191
@ TimeConstants .Unit final int unit ) {
192
- return millis2TimeSpan (
193
- Math .abs (string2Millis (time1 , format ) - string2Millis (time2 , format )), unit
194
- );
192
+ return millis2TimeSpan (string2Millis (time1 , format ) - string2Millis (time2 , format ), unit );
195
193
}
196
194
197
195
/**
@@ -212,7 +210,7 @@ public static long getTimeSpan(final String time1,
212
210
public static long getTimeSpan (final Date date1 ,
213
211
final Date date2 ,
214
212
@ TimeConstants .Unit final int unit ) {
215
- return millis2TimeSpan (Math . abs ( date2Millis (date1 ) - date2Millis (date2 ) ), unit );
213
+ return millis2TimeSpan (date2Millis (date1 ) - date2Millis (date2 ), unit );
216
214
}
217
215
218
216
/**
@@ -233,7 +231,7 @@ public static long getTimeSpan(final Date date1,
233
231
public static long getTimeSpan (final long millis1 ,
234
232
final long millis2 ,
235
233
@ TimeConstants .Unit final int unit ) {
236
- return millis2TimeSpan (Math . abs ( millis1 - millis2 ) , unit );
234
+ return millis2TimeSpan (millis1 - millis2 , unit );
237
235
}
238
236
239
237
/**
@@ -257,7 +255,7 @@ public static String getFitTimeSpan(final String time1,
257
255
final String time2 ,
258
256
final int precision ) {
259
257
long delta = string2Millis (time1 , DEFAULT_FORMAT ) - string2Millis (time2 , DEFAULT_FORMAT );
260
- return millis2FitTimeSpan (Math . abs ( delta ) , precision );
258
+ return millis2FitTimeSpan (delta , precision );
261
259
}
262
260
263
261
/**
@@ -282,7 +280,7 @@ public static String getFitTimeSpan(final String time1,
282
280
@ NonNull final DateFormat format ,
283
281
final int precision ) {
284
282
long delta = string2Millis (time1 , format ) - string2Millis (time2 , format );
285
- return millis2FitTimeSpan (Math . abs ( delta ) , precision );
283
+ return millis2FitTimeSpan (delta , precision );
286
284
}
287
285
288
286
/**
@@ -302,7 +300,7 @@ public static String getFitTimeSpan(final String time1,
302
300
* @return the fit time span
303
301
*/
304
302
public static String getFitTimeSpan (final Date date1 , final Date date2 , final int precision ) {
305
- return millis2FitTimeSpan (Math . abs ( date2Millis (date1 ) - date2Millis (date2 ) ), precision );
303
+ return millis2FitTimeSpan (date2Millis (date1 ) - date2Millis (date2 ), precision );
306
304
}
307
305
308
306
/**
@@ -324,7 +322,7 @@ public static String getFitTimeSpan(final Date date1, final Date date2, final in
324
322
public static String getFitTimeSpan (final long millis1 ,
325
323
final long millis2 ,
326
324
final int precision ) {
327
- return millis2FitTimeSpan (Math . abs ( millis1 - millis2 ) , precision );
325
+ return millis2FitTimeSpan (millis1 - millis2 , precision );
328
326
}
329
327
330
328
/**
@@ -381,7 +379,7 @@ public static Date getNowDate() {
381
379
* @return the time span by now, in unit
382
380
*/
383
381
public static long getTimeSpanByNow (final String time , @ TimeConstants .Unit final int unit ) {
384
- return getTimeSpan (getNowString (), time , DEFAULT_FORMAT , unit );
382
+ return getTimeSpan (time , getNowString (), DEFAULT_FORMAT , unit );
385
383
}
386
384
387
385
/**
@@ -402,7 +400,7 @@ public static long getTimeSpanByNow(final String time, @TimeConstants.Unit final
402
400
public static long getTimeSpanByNow (final String time ,
403
401
@ NonNull final DateFormat format ,
404
402
@ TimeConstants .Unit final int unit ) {
405
- return getTimeSpan (getNowString (format ), time , format , unit );
403
+ return getTimeSpan (time , getNowString (format ), format , unit );
406
404
}
407
405
408
406
/**
@@ -420,7 +418,7 @@ public static long getTimeSpanByNow(final String time,
420
418
* @return the time span by now, in unit
421
419
*/
422
420
public static long getTimeSpanByNow (final Date date , @ TimeConstants .Unit final int unit ) {
423
- return getTimeSpan (new Date (), date , unit );
421
+ return getTimeSpan (date , new Date (), unit );
424
422
}
425
423
426
424
/**
@@ -438,7 +436,7 @@ public static long getTimeSpanByNow(final Date date, @TimeConstants.Unit final i
438
436
* @return the time span by now, in unit
439
437
*/
440
438
public static long getTimeSpanByNow (final long millis , @ TimeConstants .Unit final int unit ) {
441
- return getTimeSpan (System .currentTimeMillis (), millis , unit );
439
+ return getTimeSpan (millis , System .currentTimeMillis (), unit );
442
440
}
443
441
444
442
/**
@@ -458,7 +456,7 @@ public static long getTimeSpanByNow(final long millis, @TimeConstants.Unit final
458
456
* @return the fit time span by now
459
457
*/
460
458
public static String getFitTimeSpanByNow (final String time , final int precision ) {
461
- return getFitTimeSpan (getNowString (), time , DEFAULT_FORMAT , precision );
459
+ return getFitTimeSpan (time , getNowString (), DEFAULT_FORMAT , precision );
462
460
}
463
461
464
462
/**
@@ -480,7 +478,7 @@ public static String getFitTimeSpanByNow(final String time, final int precision)
480
478
public static String getFitTimeSpanByNow (final String time ,
481
479
@ NonNull final DateFormat format ,
482
480
final int precision ) {
483
- return getFitTimeSpan (getNowString (format ), time , format , precision );
481
+ return getFitTimeSpan (time , getNowString (format ) , format , precision );
484
482
}
485
483
486
484
/**
@@ -499,7 +497,7 @@ public static String getFitTimeSpanByNow(final String time,
499
497
* @return the fit time span by now
500
498
*/
501
499
public static String getFitTimeSpanByNow (final Date date , final int precision ) {
502
- return getFitTimeSpan (getNowDate (), date , precision );
500
+ return getFitTimeSpan (date , getNowDate (), precision );
503
501
}
504
502
505
503
/**
@@ -518,7 +516,7 @@ public static String getFitTimeSpanByNow(final Date date, final int precision) {
518
516
* @return the fit time span by now
519
517
*/
520
518
public static String getFitTimeSpanByNow (final long millis , final int precision ) {
521
- return getFitTimeSpan (System .currentTimeMillis (), millis , precision );
519
+ return getFitTimeSpan (millis , System .currentTimeMillis (), precision );
522
520
}
523
521
524
522
/**
@@ -1603,11 +1601,15 @@ private static long millis2TimeSpan(final long millis, @TimeConstants.Unit final
1603
1601
}
1604
1602
1605
1603
private static String millis2FitTimeSpan (long millis , int precision ) {
1606
- if (millis < 0 || precision <= 0 ) return null ;
1604
+ if (precision <= 0 ) return null ;
1607
1605
precision = Math .min (precision , 5 );
1608
1606
String [] units = {"天" , "小时" , "分钟" , "秒" , "毫秒" };
1609
1607
if (millis == 0 ) return 0 + units [precision - 1 ];
1610
1608
StringBuilder sb = new StringBuilder ();
1609
+ if (millis < 0 ) {
1610
+ sb .append ("-" );
1611
+ millis = -millis ;
1612
+ }
1611
1613
int [] unitLen = {86400000 , 3600000 , 60000 , 1000 , 1 };
1612
1614
for (int i = 0 ; i < precision ; i ++) {
1613
1615
if (millis >= unitLen [i ]) {
0 commit comments