@VisibleForTesting
    public static CurrentPassport parseFromToString(String text) {
        CurrentPassport passport = null;
        Pattern ptn = Pattern.compile("CurrentPassport \\{start_ms=\\d+, \\[(.*)\\]\\}");
        Pattern ptnState = Pattern.compile("^\\+(\\d+)=(.+)$");
        Matcher m = ptn.matcher(text);
        if (m.matches()) {
            String[] stateStrs = m.group(1).split(", ", -1);
            MockTicker ticker = new MockTicker();
            passport = new CurrentPassport(ticker);
            try (Unlocker ignored = passport.lock()) {
                for (String stateStr : stateStrs) {
                    Matcher stateMatch = ptnState.matcher(stateStr);
                    if (stateMatch.matches()) {
                        String stateName = stateMatch.group(2);
                        if (stateName.equals("NOW")) {
                            long startTime = passport.history.size() > 0 ? passport.firstTime() : 0;
                            long now = Long.parseLong(stateMatch.group(1)) + startTime;
                            ticker.setNow(now);
                        } else {
                            PassportState state = PassportState.valueOf(stateName);
                            PassportItem item = new PassportItem(state, Long.parseLong(stateMatch.group(1)));
                            passport.history.add(item);
                        }
                    }
                }
            }
        }
        return passport;
    }
NOTE: This is NOT nanos since epoch. It's just since an arbitrary point in time. So only use relatively.
zuul-core/src/main/java/com/netflix/zuul/passport/CurrentPassport.java