adding ability to provide arbitrary patterns for date formats