package org.zalando.catwatch.backend.util;
import com.fasterxml.jackson.databind.util.ISO8601Utils;
import com.google.common.collect.Lists;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.TimeZone;
public class StringParser {
/**
* Parses a list of strings given as String and separated with a delemiter,
* e.g. \"foo, bar, lock\"
*
* @param stringList
* @param delimiter
* @return
*/
public static Collection<String> parseStringList(String stringList, String delimiter) {
if (stringList == null)
return Collections.emptyList();
if (!stringList.contains(delimiter))
return Lists.newArrayList(stringList);
String[] array = stringList.split(delimiter);
List<String> list = new ArrayList<>(array.length);
for (String s : array) {
list.add(s.trim());
}
return list;
}
public static String getISO8601StringForDate(Date date) {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.GERMANY);
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
return dateFormat.format(date);
}
public static Date parseIso8601Date(String iso8601Date) throws ParseException {
return ISO8601Utils.parse(iso8601Date, new ParsePosition(0));
}
}