将java.util.TimeZone String转换为java.util.TimeZone

时间:2017-06-29 07:09:40

标签: java datetime

是否可以转换java.util.TimeZone字符串

sun.util.calendar.ZoneInfo[id=\"America/Los_Angeles\",offset=-28800000,dstSavings=3600000,useDaylight=true,transitions=185,lastRule=java.util.SimpleTimeZone[id=America/Los_Angeles,offset=-28800000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=2,startDay=8,startDayOfWeek=1,startTime=7200000,startTimeMode=0,endMode=3,endMonth=10,endDay=1,endDayOfWeek=1,endTime=7200000,endTimeMode=0]]

回到java.util.TimeZone对象?

1 个答案:

答案 0 :(得分:1)

Effective Java的一部分;第10项:

  

为所提供的所有信息提供程序化信息   toString,或客户端可能会尝试解析字符串以检索它。

换句话说:如果可行,请不要尝试解析toString的输出。如果你强迫这样做(但只有真的真的没有别的办法),那么你可以这样做:

  • 你必须用反射来做(TimeZone是一个抽象类,在toString输出中你看到这个实例不是ZoneInfo而是SimpleTimeZone
  • 您必须在任何适用的构造函数中解析所需的数据并调用它

没有"简单的解决方案"到"回映" toString TimeZone TimeZone对象的fromString表示形式。 (有些API有{{1}}方法或类似方法,新的Java Date API不是其中之一,它不应该是。