Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

java.time . के साथ एक यादृच्छिक लोकलडेट उत्पन्न करें

एक आसान तरीका यह है कि न्यूनतम और अधिकतम तिथि को उनके संबंधित युग के दिन में परिवर्तित किया जाए, उन दो मानों के बीच एक यादृच्छिक पूर्णांक उत्पन्न किया जाए और अंत में इसे वापस LocalDate में परिवर्तित किया जाए। . युग का दिन <के साथ प्राप्त किया जाता है code>toEpochDay () जो 1970-01-01 (आईएसओ) के बाद के दिनों की गिनती है।

एक यादृच्छिक वर्ष, फिर महीने और फिर दिन उत्पन्न करने में समस्या यह है कि आपके पास एक अमान्य तिथि (जैसे 31 फरवरी) के साथ गिरने का एक छोटा सा मौका है। साथ ही, एक यादृच्छिक युग दिवस लेना सभी संभावित तिथियों में एक समान वितरण की गारंटी देता है।

public static void main(String... args) {
    long minDay = LocalDate.of(1970, 1, 1).toEpochDay();
    long maxDay = LocalDate.of(2015, 12, 31).toEpochDay();
    long randomDay = ThreadLocalRandom.current().nextLong(minDay, maxDay);
    LocalDate randomDate = LocalDate.ofEpochDay(randomDay);
    System.out.println(randomDate);
}

ध्यान दें कि चूंकि न्यूनतम तिथि वास्तव में सबसे पहले है, आप इसे 0 से बदल सकते हैं।

इसे LocalDate में बदलने के लिए एक java.sql.Date . में , आप इस पोस्ट का संदर्भ ले सकते हैं :

java.sql.Date date = java.sql.Date.valueOf(randomDate);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में एक विशिष्ट कॉलम के बाद कई कॉलम जोड़ना

  2. MySQL और Java - अंतिम सम्मिलित मूल्य (JDBC) की आईडी प्राप्त करें

  3. MySQL कथन का सटीक निष्पादन समय प्राप्त करना

  4. मुझे कई चुनिंदा @@session.tx_read_only मिलते हैं, क्या कोई ऐसा ही करेगा?

  5. क्लासिक एएसपी + मोटोबिट शुद्ध एएसपी अपलोड + यूटीएफ -8 चारसेट