批次隨機日期產生器會一次從指定的含端點區間中抽出大量日期,最多回傳 1,000 個以穩定 YYYY-MM-DD 格式表示的值。隨機日期產生器可在你的瀏覽器中執行此作業,將每個日期視為 UTC 日序數,並採用 Web Crypto 的無符號 32 位元字搭配拒絕抽樣,確保範圍中的每個日期被選中的機率相同。兩端點皆計算在內:從 2024-02-28 到 2024-03-01 的區間,可以等機率地回傳 2 月 28 日、閏日或 3 月 1 日。你可以選擇想要的日期數量、決定是否允許重複,並複製或記錄結果。由於此工具是以整數日位置進行抽樣,而非每次加 24 個本地小時,因此在日光節約時間切換時,絕不會遺漏或重複日期。從僅一天的範圍到完整的民用區間 0001-01-01 至 9999-12-31 皆可支援,像 2025-04-31 或 2023-02-29 等無效輸入會被拒絕,而不是被默默向前推移。結果清單是在本機產生的,因此無論是你的區間或選出的日期,都不會被上傳。

批次產生實際會輸出什麼
當人們搜尋批次用的隨機日期產生器時,通常指的是三件具體的事:一次點擊就能取得多個日期、把含端點區間中兩端視為與其他日子一樣處理,以及一份可乾淨地複製到試算表、測試工具或寫作提示中的清單。隨機日期產生器正是圍繞這些需求而設計的。每批可包含 1 到 1,000 個日期,結果以純文字並採用嚴格的 YYYY-MM-DD 格式呈現,這正是資料庫、試算表與 CSV 流程已能直接理解的格式。沒有任何時段元件、時區偏移,或需要在重複使用前清除的隱藏地區設定。編輯開始日期、結束日期、數量或重複開關時,會清空先前的清單與先前的錯誤,因此舊設定下產生的結果絕不會殘留在頁面上,讓人誤以為仍符合目前控制項。若想深入了解如何將此輸出匯入試算表而無需重新輸入,請參閱從瀏覽器工具在 Excel 中產生隨機日期。
輸入、限制與輸出格式
此工具刻意精簡選項,讓批次抽取難以設定錯誤。關鍵的控制項有三個:兩個日期欄位與一個數量,再加上一個允許重複值的單一核取方塊。每個輸入都會透過在 UTC Date 物件上設定其年、月、日並讀回各元件,驗證其為嚴格的 YYYY-MM-DD 值;這也是此工具能拒絕像 2025-04-31 或 2024-13-01 這類輸入而非默默修正的原因。
| 控制項 | 必要格式 | 允許範圍 | 輸入錯誤時的行為 |
|---|---|---|---|
| 開始日期 | YYYY-MM-DD | 0001-01-01 至 9999-12-31 | 以明確錯誤拒絕;絕不向前推移 |
| 結束日期 | YYYY-MM-DD | 0001-01-01 至 9999-12-31;不得早於開始日期 | 以明確錯誤拒絕;單日範圍為有效 |
| 數量 | 整數 | 1 至 1,000 | 空白、零、負數、小數或超出範圍的值會產生明確錯誤,說明未截斷任何內容 |
| 允許重複 | 切換開關 | 開或關 | 唯一模式在數量超過可用天數時會報錯;絕不默默縮短清單或退回為重複 |
輸出以穩定的 YYYY-MM-DD 格式回傳。若需要依時間順序排序,請在目的工具中自行排序。
如何批次產生隨機日期
- 在瀏覽器中開啟隨機日期產生器。
- 以 YYYY-MM-DD 格式輸入有效的開始日期與結束日期。兩端點皆為有效範圍,因此像 2025-07-04 至 2025-07-04 這樣的單日範圍亦屬有效。
- 確認開始日期未晚於結束日期。工具會回報錯誤,而不是默默交換兩者。
- 輸入 1 至 1,000 之間的數量。超出此範圍的值會產生錯誤訊息,說明允許的上、下限,並確認未截斷任何內容。
- 決定是否允許同一日期出現多次。保留開關為開啟以進行可取代式抽樣,或將其關閉以要求日期不重複。
- 產生日期、驗證顯示的範圍與數量,並複製或記錄你需要的值。
在產生後變更任何輸入,皆會清空舊清單,因此你隨時看到的都是與畫面上目前控制項相符的結果。
含端點範圍、閏日與不受日光節約時間影響的抽樣
批次抽取只有在範圍內的每個日期確實可被抽到時才有用,這需要謹慎處理兩個曆法特性:閏日與日光節約時間切換。此產生器透過在 UTC Date 物件上設定年、月、日並讀回各元件,來驗證嚴格的 YYYY-MM-DD 值。可被 4 整除的年份通常為閏年,例外是無法被 400 整除的世紀年。實務上代表 2000-02-29 與 2024-02-29 為有效輸入,而 1900-02-29 與 2023-02-29 則會被拒絕。月份與日期溢位以同樣方式被拒絕:2025-04-31 不會默默滾動到 5 月,而 2024-13-01 會被回報為無效,而不是被解讀為 2025 年 1 月。
抽樣是基於整數 UTC 日位位置運作。實作方式將某日期的 UTC 毫秒值精準除以 86,400,000,以取得相對於 1970-01-01 的整日位置,接著抽出選定位置,並以 UTC 取得器格式化回日期。這正是批次抽取跨越春季提前或秋季延後界線時,不會像以本地時間每次加 24 小時的單純迴圈那樣遺漏或重複日期的原因——因為加上本地小時可能落在 23:00 或 01:00 而非午夜,導致曆日被悄悄省略或重複。0001 至 0099 年同樣保留其字面值,因為此工具採用 setUTCFullYear,而非 Date.UTC 對兩位數年份的舊式解讀方式,否則那些年份會被位移到二十世紀。
批次抽取的重複模式與唯一模式
重複開關對批次抽取的統計分布影響甚大,因此值得將兩種模式並列比較。
| 面向 | 重複模式(允許重複) | 唯一模式(停用重複) |
|---|---|---|
| 抽樣方式 | 在完整含端點範圍內獨立抽取 | 稀疏的部分 Fisher-Yates 不取式選取 |
| 同批中出現兩次同一日期 | 被允許,且在數量大時屬於預期狀況 | 絕不會出現 |
| 數量超過可用天數 | 予以接受;重複情況自然更常發生 | 回報為錯誤;工具不會默默縮短清單或退回為重複 |
| 記憶體使用 | 每次抽取為常數;僅累計計數成長 | 隨要求的數量成長,而非隨範圍大小成長 |
| 最適用於 | 蒙地卡羅式抽樣、大型測試固定資料、隨機寫作提示 | 從狹窄範圍中挑選一組固定的不重複日期、排程抽選、不重複的範例行程 |
兩種模式皆為均勻抽樣。在重複模式下,每次抽取皆獨立,因此在期望值上,從三天含端點範圍抽出的 500 個日期批次中,每天會出現約 166 或 167 次,但單次抽取並未偏袒任何特定日期。在唯一模式下,每個符合資格的日期在每一步仍具均勻被選中的機率,且先前選過的位置會在下次抽取前從池中移除。兩種模式的隨機性來自瀏覽器 Web Crypto getRandomValues API:此工具取出無符號 32 位元字,並透過拒絕抽樣去除模數偏誤後,再將該字轉換為日位置,因此範圍內每個日期皆對應相同數量的底層 32 位元值。此工具不使用 Math.random()。
實用的批次應用情境與值得留意的限制
批次隨機日期最適用於日期本身並非權威依據的工作。常見情境包括測試固定資料、要求角色在特定日期行動的寫作提示、衝刺規劃練習的範例行程、隨機練習題,以及圖表或報表的展示資料。這些用途在意的是統計分布與可重現性,甚於在意實際抽出的究竟是哪個日期,因此寬廣的含端點範圍與較大的數量通常是恰當的預設值。
有幾項限制值得留意。此工具並非預測系統、約診服務、法律期限計算機、營業日曆、假日曆、時區轉換器或時間戳記產生器。它不會排除週末、國定假日、曆法變更或組織特有的封鎖日。若需要日期落在工作日、避開假日或略過封鎖時段,請於你自己的軟體中篩選結果清單。此產生器同樣不包含任何時段或時區偏移(內部 UTC 序數方法除外),因此並非挑選會議時段或加上時戳記錄項目的合適工具;此類用途請使用時間戳記工具。
可重現性是有意為之,而非偶然。Web Crypto 在此介面下無法植入種子,因此以相同區間與數量進行的兩批次不會彼此相符。若需可重現的軟體測試,請儲存此工具在某次執行中產生的日期,或以你自己的種子化測試工具產生。對公平的抽選而言,等機率並不等於某次特定執行的結果看起來分佈均勻,且重複模式本就可能合理地重複某些值。若某次抽取涉及財務、法律、競賽、安全或稽核後果,請採用具備獨立監督與留存證據的書面程序,而非通用瀏覽器工具。
若想深入了解,請參閱如何為隨機姓名挑選轉盤記錄步驟。