# Formats and Best Practices
source: https://developer.mastercard.com/open-finance-au/documentation/errors/best-practices/index.md

This section describes the best way to format queries, including spaces and special characters, and how to work with dates and times.

## Handling Spaces and Special Characters in Queries {#handling-spaces-and-special-characters-in-queries}

Request URLs must be URL-encoded. In practice this means that spaces in URL query values must be replaced with `+` and the `@` symbol must be replaced with `%40`.

* Correct -- `?search=New+York+City&start=1&limit=10`
* Incorrect -- `?search=New York City&start=1&limit=10`

HTTP will truncate the second version of the query at the space after the word "New", so you will receive 25 records (the default limit) matching only the word "New".

## Handling Epoch Dates and Times {#handling-epoch-dates-and-times}

Mastercard Open Finance supports either Unix epoch timestamps or [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) date and time format. The format used varies between API endpoints. Refer to the documentation for each endpoint for details.

A Unix epoch timestamp is a long value representing the number of seconds that have elapsed since January 1, 1970 (midnight UTC/GMT), with negative values for dates and times before 1970.

* An epoch value is represented in seconds and can be positive or negative.
* Timestamps in Java and Javascript are in milliseconds.
* To convert from Java to epoch, divide the Java time by 1000.
* To convert from epoch to Java, multiply the epoch time by 1000.

[Epoch Converter](http://www.epochconverter.com/) has a page with a simple utility for converting quickly between readable dates and epoch timestamps.
