One application for a randomness beacon is to get this assurance. A randomness beacon (NIST runs a prototype one) generates a sequence of public, signed, timestamped random numbers on a fixed schedule. (In NIST's case, it's once per minute.)
The beacon operator is promising that the number won't be known to anyone (outside the machine on which the beacon is running) until the time on the beacon pulse. As long as the beacon operator keeps that promise, you can know that nobody could have known the value of the beacon pulse at 12:31 GMT June 20, 2017 before exactly 12:31 GMT on June 20, 2017. The beacon service keeps a record of all these pulses, all digitally signed and hash-chained together. Sometime soon, we're releasing a new beacon format, and a couple other organizations will be running beacons, so you can choose which beacon you want to trust, or even combine them.
If you don't want to trust anyone to generate those random numbers, you can use something else from the environment. Some people have proposed using closing stock prices, winning lottery numbers, weather data, and hashes from proof-of-work blockchains. All of those have some issues in terms of convenience, and potentially a small amount of influence that could be applied by specific trusted people, but nobody can exactly predict what they will be even a day in advance.
 For example, consider weather data: You're going to define some official source as the place you get your cannonical weather data. Everyone will notice if this source tells you there was a high temperature in DC of 20 C on a day when it really got up to 30 C, but that source will have some wiggle room in reporting a high of 30 C or 31 C.