0

有人请告诉我如何从 TimeZone 课程中获取时间。当我运行这段代码

System.out.println("Default Timezone: " + TimeZone.getDefault())

我懂了

Default Timezone: sun.util.calendar.ZoneInfo[id="Asia/Manila",offset=28800000,dstSavings=0,useDaylight=false,transitions=10,lastRule=null]

我找不到任何可以获取时间的函数,例如TimeZone.getDefault().getTime(). 请帮忙。

4

7 回答 7

4

请尝试以下获取 EST TimeZone 的时间:

TimeZone est = TimeZone.getTimeZone("America/New_York");
Calendar calendar = new GregorianCalendar(est);
System.out.println(calendar.getTime());     //<-prints the date
System.out.println(calendar.getTimeInMillis()); //<-prints the time in milliseconds

您可以将时区更改为其他时区,例如 PST 以获取其他时区的时间:

TimeZone pst = TimeZone.getTimeZone("America/Los_Angeles");
calendar.setTimeZone(pst);
System.out.println(calendar.getTime());      //<-prints the date
System.out.println(calendar.getTimeInMillis()); //<-prints the time in milliseconds

希望这可以帮助。

于 2012-10-15T03:51:23.737 回答
3
Date theCurrentDateAndTime = new GregorianCalendar(timeZone).getTime();
于 2012-10-15T03:24:12.667 回答
2

TimeZone是一个抽象类,代表时区而不是时间。正如您所提到的,您正在调用 getDefault(),TimeZone.getDefault()通过使用 getDefault(),您将获得基于程序运行位置的时区。

如果您只想打印日期,那么您可以使用日历日期等选项, 或者如果您希望使用时区特定时间移动,则设置时区并获取该区域的时间。

您的程序将以这种方式打印日期(这不仅是这种方式):

    TimeZone defaultTimezone = TimeZone.getDefault();
    Calendar calendar = new GregorianCalendar(defaultTimezone);
    System.out.println(calendar.getTime());
于 2012-10-15T04:02:24.300 回答
1

TimeZone 类表示时区而不是时间。您将不得不暂时使用 theDateCalendarclass 。

于 2012-10-15T03:21:28.123 回答
1

您需要使用任一Date(或)CalendarAPI 来获取今天的日期/时间。

这些 API 使用系统中配置的默认时区。

于 2012-10-15T03:23:22.943 回答
1

你没有。

时区的 Javadoc。您会注意到这与当前时间无关。

查看日历

于 2012-10-15T03:23:30.010 回答
0
于 2018-02-23T00:51:04.350 回答