Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package com.github.sog.kit.date;
 
 import java.util.Date;

日期提供者,使用它而不是直接取得系统时间,方便测试。

Author(s):
calvin
 
public interface DateProvider {
    String YYYY_MM_DD       = "yyyy-MM-dd";
    String YYYY_MM_DD_HH_MM = "yyyy-MM-dd HH:mm";
    String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
    static final DateProvider DEFAULT = new DefaultDateProvider();
    long getCurrentTimeInMillis();

    
默认时间提供者,返回当前的时间,线程安全。
    public static class DefaultDateProvider implements DateProvider {
        @Override
        public Date getCurrentDate() {
            return new Date();
        }
        @Override
        public long getCurrentTimeInMillis() {
            return System.currentTimeMillis();
        }
    }

    
可配置的时间提供者,用于测试.
    public static class MockedDateProvider implements DateProvider {
        private long time;
        public MockedDateProvider(Date date) {
            this. = date.getTime();
        }
        public MockedDateProvider(long time) {
            this. = time;
        }
        @Override
        public Date getCurrentDate() {
            return new Date();
        }
        @Override
        public long getCurrentTimeInMillis() {
            return ;
        }

        
重新设置时间。
        public void update(Date newDate) {
             = newDate.getTime();
        }

        
重新设置时间。
        public void update(long newTime) {
            this. = newTime;
        }

        
增加时间戳.
        public void incrementTime(int millis) {
             += millis;
        }
    }
New to GrepCode? Check out our FAQ X