{"id":2228,"date":"2023-05-06T21:58:12","date_gmt":"2023-05-06T13:58:12","guid":{"rendered":"https:\/\/www.appblog.cn\/?p=2228"},"modified":"2023-05-07T09:34:26","modified_gmt":"2023-05-07T01:34:26","slug":"groovy-code-example-usage-of-date-object","status":"publish","type":"post","link":"https:\/\/www.appblog.cn\/index.php\/2023\/05\/06\/groovy-code-example-usage-of-date-object\/","title":{"rendered":"Groovy\u4ee3\u7801\u793a\u4f8b &#8211; \u65e5\u671f\u5bf9\u8c61\u7684\u4f7f\u7528"},"content":{"rendered":"<p>\u4e0d\u8bba\u5728Java\u6216groovy\u4e2d\uff0c\u65e5\u671f\u90fd\u662f\u7ecf\u5e38\u4f7f\u7528\u5230\u7684\u5bf9\u8c61\u3002\u4e0d\u540c\u7684\u662f\uff0cgroovy\u5bf9\u4e8ejava\u4e2d\u7684\u65e5\u671f\u505a\u4e86\u5f88\u591a\u6269\u5c55\u4ee5\u65b9\u4fbf\u5f00\u53d1\u4eba\u5458\u4f7f\u7528\u3002<\/p>\n<p>1\u3001\u5bf9\u8c61\u5b9a\u4e49<\/p>\n<p>\u5728Java\u4e2dDate\u7c7b\u7684\u529f\u80fd\u76f8\u5bf9\u6bd4\u8f83\u5f31\uff0c\u800cCalendar\u5219\u6bd4\u8f83\u5f3a\u5927\u4e00\u4e9b\uff0c\u53ef\u4ee5\u652f\u6301\u65e5\u671f\u7684\u8ba1\u7b97\u3002\u800c\u5728groovy\u4e2d\u4e24\u8005\u65e2\u53ef\u4ee5\u652f\u6301\u65e5\u671f\u7684\u8ba1\u7b97\u4e0e\u6bd4\u8f83\u3002\u9996\u5148\u770b\u4e0b\u65e5\u671f\u5bf9\u8c61\u7684\u5b9a\u4e49\uff1a<\/p>\n<pre><code class=\"language-java\">\/\/\u5b9a\u4e49\u65e5\u671f\u5bf9\u8c61\ndef date = new Date()\nprintln date \/\/ Sat Sep 26 19:22:50 EEST 2015\n\n\/\/\u5b9a\u4e49\u65e5\u5386\u5bf9\u8c61\ndef calendar = Calendar.instance\nprintln calendar \/\/ java.util.GregorianCalendar[time=...<\/code><\/pre>\n<p>2\u3001\u65e5\u671f\u5b57\u7b26\u4e32\u7684\u89e3\u6790 &#8211; data parsing<\/p>\n<p>\u5f00\u53d1\u4eba\u5458\u7ecf\u5e38\u9700\u8981\u5c06\u7279\u5b9a\u683c\u5f0f\u7684\u65e5\u671f\u5b57\u7b26\u4e32\u89e3\u6790\u4e3a\u65e5\u671f\u5bf9\u8c61\uff0c\u5728groovy\u4e2d\u53ef\u4ee5\u8fd9\u4e48\u505a<\/p>\n<pre><code class=\"language-java\">\/\/\u6309\u7167\u6307\u5b9a\u683c\u5f0f\u89e3\u6790\u5b57\u7b26\u4e32\ndef date = new Date().parse(&quot;dd.MM.yyy&quot;, &#039;18.05.1988&#039;)\nprintln date \/\/ Wed May 18 00:00:00 EEST 1988\n\n\/\/\u6309\u7167\u53e6\u5916\u4e00\u4e2a\u683c\u5f0f\u89e3\u6790\u5b57\u7b26\u4e32\ndef extendedDate = new Date().parse(&quot;dd.MM.yyy HH:mm:ss&quot;, &#039;18.05.1988 12:15:00&#039;)  \nprintln extendedDate \/\/ Wed May 18 12:15:00 EEST 1988<\/code><\/pre>\n<p>3\u3001\u65e5\u671f\u7684\u683c\u5f0f\u5316 &#8211; date formatting<\/p>\n<p>\u5c06\u65e5\u671f\u683c\u5f0f\u5316\u4e3a\u5b57\u7b26\u4e32\u540c\u6837\u5f88\u6709\u7528\uff0c\u5728groovy\u4e2d\u64cd\u4f5c\u8d77\u6765\u8981\u65b9\u4fbf\u5f88\u591a\uff0c\u53ea\u9700\u8981\u8c03\u7528date.format\u65b9\u6cd5\u5373\u53ef<\/p>\n<pre><code class=\"language-java\">\/\/\u89e3\u6790\u65e5\u671f\ndef date = new Date().parse(&quot;dd.MM.yyy&quot;, &#039;18.05.1988&#039;)\n\/\/\u6309\u7167\u6307\u5b9a\u683c\u5f0f\u6765\u683c\u5f0f\u5316\u65e5\u671f\ndef formattedDate = date.format(&quot;dd\/MM\/yyy&quot;)\nprintln formattedDate \/\/ 18\/05\/1988<\/code><\/pre>\n<p>groovy\u4e2d\u5982\u4f55\u8f6c\u5316\u65e5\u671f\u7684\u683c\u5f0f\uff1fgroovy\u4e2d\u7684\u65e5\u671f\u5bf9\u8c61\u529f\u80fd\u6709\u6240\u589e\u5f3a\uff0c\u76f4\u63a5\u652f\u6301\u65e5\u671f\u7684\u89e3\u6790\u4e0e\u683c\u5f0f\u5316\uff0c\u793a\u4f8b\u4ee3\u7801\u5982\u4e0b\uff1a<\/p>\n<pre><code class=\"language-java\">String oldDate = &#039;04-DEC-2019&#039;\nDate date = Date.parse(&#039;dd-MMM-yyyy&#039;, oldDate)\nString newDate = date.format(&#039;yyyy-MM-dd&#039;)\nprintln newDate \/\/2019-12-04<\/code><\/pre>\n<p>4\u3001\u65e5\u671f\u7684\u8ba1\u7b97 &#8211; date arithmetic<\/p>\n<p>groovy\u5bf9\u4e8e\u65e5\u671f\u7684\u8ba1\u7b97\u4e5f\u63d0\u4f9b\u4e86\u589e\u5f3a\u7684\u652f\u6301\uff0c\u4f7f\u7528\u8d77\u6765\u76f8\u5f53\u65b9\u4fbf<\/p>\n<pre><code class=\"language-java\">\/\/\u5b9a\u4e49\u65e5\u671f\ndef date = new Date().parse(&quot;dd.MM.yyy&quot;, &#039;18.05.1988&#039;)\n\/\/\u514b\u9686\u65e5\u671f\ndef datePlus = date.clone()\ndef dateMinus = date.clone()\n\n\/\/\u65e5\u671f+5\u5929\uff0c\u4f7f\u7528\u64cd\u4f5c\u7b26\ndatePlus = datePlus + 5\nprintln datePlus \/\/ Mon May 23 00:00:00 EEST 1988\n\n\/\/\u65e5\u671f+5\u5929\uff0c\u4f7f\u7528\u65b9\u6cd5\ndatePlus = datePlus.plus(5)\nprintln datePlus \/\/ Sat May 28 00:00:00 EEST 1988\n\n\/\/\u65e5\u671f-10\u5929\uff0c\u4f7f\u7528\u64cd\u4f5c\u7b26\ndateMinus = dateMinus - 10\nprintln dateMinus \/\/ Sun May 08 00:00:00 EEST 1988\n\n\/\/\u65e5\u671f-10\u5929\uff0c\u4f7f\u7528\u65b9\u6cd5\ndateMinus = dateMinus.minus(10)\nprintln dateMinus \/\/ Thu Apr 28 00:00:00 EEST 1988\n\n\/\/\u65e5\u671f\u4e4b\u95f4\u6240\u6709\u65e5\u671f\uff08\u5927\u7b49\u4e8edateMinus\u5e76\u4e14\u5c0f\u4e8edatePlus\u4e4b\u95f4\u7684\u6240\u6709\u65e5\u671f\uff09\ndef dateInterval =  dateMinus..&lt;datePlus\nprintln dateInterval \/\/ [Thu Apr 28 00:00:00 EEST 1988,.., Fri May 27 00:00:00 EEST 1988]<\/code><\/pre>\n<p>5\u3001\u65e5\u671f\u4e0b\u6807\u7684\u4f7f\u7528 &#8211; subscript operators<\/p>\n<pre><code class=\"language-java\">\/\/\u9759\u6001\u5bfc\u5165\nimport static java.util.Calendar.*\ndef date = new Date().parse(&quot;dd.MM.yyy&quot;, &#039;18.05.1988&#039;)\n\n\/\/\u83b7\u53d6\u65e5\u671f\u7684\u5e74\u4efd\nprintln date[YEAR] \/\/ 1988\n\/\/\u83b7\u53d6\u65e5\u671f\u7684\u6708\u4efd\nprintln date[MONTH] \/\/ 4\n\/\/\u83b7\u53d6\u65e5\u671f\nprintln date[DATE] \/\/ 18\n\n\/\/\u8bbe\u7f6e\u5e74\u4efd\ndate[YEAR] = 1999\n\/\/\u8bbe\u7f6e\u6708\u4efd\ndate[MONTH] = 7\n\/\/\u8bbe\u7f6e\u65e5\u671f\ndate[DATE] = 20\n\nprintln date \/\/ Fri Aug 20 00:00:00 EEST 1999<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u4e0d\u8bba\u5728Java\u6216groovy\u4e2d\uff0c\u65e5\u671f\u90fd\u662f\u7ecf\u5e38\u4f7f\u7528\u5230\u7684\u5bf9\u8c61\u3002\u4e0d\u540c\u7684\u662f\uff0cgroovy\u5bf9\u4e8ejava\u4e2d\u7684\u65e5\u671f\u505a\u4e86\u5f88\u591a\u6269 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[568],"tags":[],"class_list":["post-2228","post","type-post","status-publish","format-standard","hentry","category-groovy"],"_links":{"self":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/2228","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/comments?post=2228"}],"version-history":[{"count":0,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/2228\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/media?parent=2228"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/categories?post=2228"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/tags?post=2228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}