All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.anysoft.util.DateProperties Maven / Gradle / Ivy

There is a newer version: 1.6.17
Show newest version
package com.anysoft.util;

import com.google.re2j.Matcher;
import com.google.re2j.Pattern;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 提供内置日期格式化变量的Properties
 */
public class DateProperties extends DefaultProperties {
    protected long timestamp = 0;
    protected static Pattern pattern = Pattern.compile("tf\\((.+)\\)");
    protected static ThreadLocal factory = new ThreadLocal() {
        @Override
        protected SimpleDateFormat initialValue() {
            return new SimpleDateFormat();
        }
    };

    public DateProperties(long tt, Properties p) {
        super("tt", p);
        this.timestamp = tt <= 0 ? System.currentTimeMillis() : tt;
    }

    @Override
    protected String _GetValue(String _name) {
        if (_name.equals("tt")) {
            return String.valueOf(timestamp);
        }
        Matcher matcher = pattern.matcher(_name);
        if (matcher.find()) {
            SimpleDateFormat formatter = factory.get();
            formatter.applyPattern(matcher.group(1));
            return formatter.format(new Date(timestamp));
        } else {
            return super._GetValue(_name);
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy