@Override
    public String format( Date date, String... args ) {
        if( date == null ) {
            return "";
        }

        if( args.length == 0 ) {
            throw new JGivenWrongUsageException( "A SimpleDateFormat pattern is expected as first argument" );
        }

        String pattern = args[0];
        Locale locale = Locale.getDefault();
        if( args.length > 1 ) {
            locale = Locale.forLanguageTag( args[1] );
        }

        SimpleDateFormat sdf;
        try {
            sdf = new SimpleDateFormat( pattern, locale );
        } catch( IllegalArgumentException e ) {
            throw new JGivenWrongUsageException( String.format( "A valid SimpleDateFormat pattern is expected (was '%s')", pattern ) );
        }

        return sdf.format( date );
    }
A {@link SimpleDateFormat} pattern is expected as first argument.<br>
An optional second argument can be set to specify a locale as an ISO 639 language code.<br>
jgiven-core/src/main/java/com/tngtech/jgiven/format/DateFormatter.java