Converting a String to a Date in Groovy
1.概述
在这个简短的教程中,我们将学习如何在Groovy中将代表日期的String转换为真实的Date对象。
但是,我们应该记住,这种语言是Java的增强。因此,除了新的Groovy方法之外,我们仍然可以使用所有普通的Java方法。
2.使用DateFormat
首先,我们可以像往常一样使用Java DateFormat将字符串解析为Date:
1 2 3 4 | def pattern ="yyyy-MM-dd" def input ="2019-02-28" def date = new SimpleDateFormat(pattern).parse(input) |
但是,Groovy允许我们更轻松地执行此操作。它在便利静态方法Date.parse(String format,String input)中封装了相同的行为:
1 |
简而言之,该方法是java.util.Date对象的扩展,并且在内部每次调用时都会实例化java.text.DateFormat,以确保线程安全。
2.1。相容性问题
为了明确起见,自Groovy的1.5.7版开始,就可以使用Date.parse(String format,String input)方法。
2.4.1版引入了一个变量,该变量接受指示时区的第三个参数:Date.parse(字符串格式,字符串输入,TimeZone区域)。
但是,从2.5.0版本开始,发生了重大变化,而所有增强功能不再随groovy-all一起提供。
因此,接下来,它们需要作为一个单独的模块包含在内,名为groovy-dateutil:
1 2 3 4 5 | <dependency> <groupId>org.codehaus.groovy</groupId> groovy-dateutil</artifactId> <version>2.5.6</version> </dependency> |
还有版本3.0.0,但目前处于Alpha阶段。
3.使用JSR-310 LocalDate
从版本8开始,Java引入了一套全新的日期处理工具:Date / Time API。
这些API之所以更好,有几个原因,应该优先于传统的API。
让我们看看如何利用Groovy的java.time.LocalDate解析功能:
1 | def date = LocalDate.parse(input, pattern) |
4。结论
我们已经了解了如何使用Groovy语言将aString转换为aDate,并注意了特定版本之间的特殊性。
与往常一样,源代码和单元测试可在GitHub上获得。