/**
* 将给定的时间字符串转换成日期, 并指定时区
*
* dateStr 给定的时间字符串 (格式应该与pattern参数一致)
* pattern 时间字符串的格式
* timeZoneId 时区Id, 默认取系统本地设置的时区
*
* @param dateStr
* @param pattern
* @param timeZoneId
* @return
*/
def parseDate(dateStr: String, pattern: String = "yyyy-MM-dd HH:mm:ss", timeZoneId: String = TimeZone.getDefault.getID): Date = {
val zoneId = ZoneId.of(StringUtils.trim(timeZoneId))
val timeZone = TimeZone.getTimeZone(zoneId)
val df = FastDateFormat.getInstance(pattern, timeZone)
df.parse(dateStr)
}
在上面的代码中,首先使用TimeZone.getTimeZone方法将指定的时区Id转换为TimeZone对象。然后使用FastDateFormat.getInstance方法获取一个FastDateFormat对象, 并且通过timeZone参数指定了时区。最后,使用FastDateFormat对象的parse方法将给定的日期字符串转换为指定时区的日期。
下面是测试方法
val dateStr = "2023-04-03 19:42:50"
val date1 = parseDate(dateStr, fullFormat)
val date2 = parseDate(dateStr, fullFormat, "Asia/Shanghai")
val date3 = parseDate(dateStr, fullFormat, "US/Pacific")
val date4 = parseDate(dateStr, fullFormat, "Australia/Brisbane")
val date5 = parseDate(dateStr, fullFormat, "Europe/London")
println(date1)
println(date2)
println(date3)
println(date4)
println(date5)
输出结果为:
Mon Apr 03 19:42:50 CST 2023
Mon Apr 03 19:42:50 CST 2023
Tue Apr 04 10:42:50 CST 2023
Mon Apr 03 17:42:50 CST 2023
Tue Apr 04 02:42:50 CST 2023
好文链接
大家都在找:
scala:scala 算子训练
时区:时区划分图
发表评论