import java.text.SimpleDateFormat;<br />import java.util.Date;</p><p>public class DateRandomTest {</p><p>// 返回2007-01-01到2007-03-01的一個隨機日期<br />public static void main(String[] args) {<br />Date randomDate = randomDate("2007-01-01", "2007-03-01");<br />System.out.println(randomDate.toString());<br />}</p><p>/**<br /> * 擷取隨機日期<br /> *<br /> * @param beginDate<br /> * 起始日期,格式為:yyyy-MM-dd<br /> * @param endDate<br /> * 結束日期,格式為:yyyy-MM-dd<br /> * @return<br /> */</p><p>private static Date randomDate(String beginDate, String endDate) {<br />try {<br />SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");<br />Date start = format.parse(beginDate);// 構造開始日期<br />Date end = format.parse(endDate);// 構造結束日期<br />// getTime()表示返回自 1970 年 1 月 1 日 00:00:00 GMT 以來此 Date 對象表示的毫秒數。<br />if (start.getTime() >= end.getTime()) {<br />return null;<br />}<br />long date = random(start.getTime(), end.getTime());</p><p>return new Date(date);<br />} catch (Exception e) {<br />e.printStackTrace();<br />}<br />return null;<br />}</p><p>private static long random(long begin, long end) {<br />long rtn = begin + (long) (Math.random() * (end - begin));<br />// 如果返回的是開始時間和結束時間,則遞迴調用本函數尋找隨機值<br />if (rtn == begin || rtn == end) {<br />return random(begin, end);<br />}<br />return rtn;<br />}</p><p>}