001// SPDX-FileCopyrightText: 2021 Paul Schaub <vanitasvitae@fsfe.org>
002//
003// SPDX-License-Identifier: Apache-2.0
004
005package sop.cli.picocli;
006
007import java.util.Date;
008
009import sop.util.UTCUtil;
010
011public class DateParser {
012
013    public static final Date BEGINNING_OF_TIME = new Date(0);
014    public static final Date END_OF_TIME = new Date(8640000000000000L);
015
016    public static Date parseNotAfter(String notAfter) {
017        Date date = notAfter.equals("now") ? new Date() : notAfter.equals("-") ? END_OF_TIME : UTCUtil.parseUTCDate(notAfter);
018        if (date == null) {
019            Print.errln("Invalid date string supplied as value of --not-after.");
020            System.exit(1);
021        }
022        return date;
023    }
024
025    public static Date parseNotBefore(String notBefore) {
026        Date date = notBefore.equals("now") ? new Date() : notBefore.equals("-") ? BEGINNING_OF_TIME : UTCUtil.parseUTCDate(notBefore);
027        if (date == null) {
028            Print.errln("Invalid date string supplied as value of --not-before.");
029            System.exit(1);
030        }
031        return date;
032    }
033}