我有一个包含原始日期字段(存储为字符数据)的数据库字段,例如
东部夏令时间 2008 年 9 月 26 日星期五晚上 8:30
我可以使用 SimpleDateFormat 轻松地将其解析为日期
DateFormat dbFormatter = new SimpleDateFormat("EEEE, MMMM dd, yyyy hh:mm aa zzzz");
Date scheduledDate = dbFormatter.parse(rawDate);
我想做的是从这个字符串中提取一个 TimeZone 对象。此应用程序运行的 JVM 中的默认时区是 GMT,所以我不能.getTimezoneOffset()
从Date
上面的解析中使用(因为它会返回默认时区)。
除了标记原始字符串并找到 Timezone 字符串的起始位置(因为我知道格式将始终是EEEE, MMMM dd, yyyy hh:mm aa zzzz
)之外,还有一种方法可以使用 DateFormat/SimpleDateFormat/Date/Calendar API 来提取 TimeZone 对象 - 这将具有相同的 TimeZone作为我解析的字符串DateFormat.parse()
?
在 Java API 中让我对Date
vs感到困扰的一件事是,它应该在所有地方都被替换......但后来他们决定,哦,嘿,让我们仍然在类中使用's 。Calendar
Calendar
Date
Date
DateFormat