Java SWT DateTime:确定星期几

问题描述 投票:0回答:2

我有一个3/9/2017的DateTime小部件。根据DateTime的文档,我没有看到确定星期几的方法。我最终需要从DateTime小部件中以“Wed Feb 22 14:57:34 UTC 2017”格式解析一个字符串,但第一步是获取星期几。有没有办法在制作我自己的功能之外做到这一点?如果没有,你会推荐什么作为该功能的最佳方法,因为一周中的几天与每年的日期不一致?

如果您需要任何其他信息,请与我们联系。

谢谢!

java parsing datetime swt dayofweek
2个回答
2
投票

使用java.util.Calendar

    Calendar c = Calendar.getInstance();
    c.setTime(yourDate);
    int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);
  • 如果您需要输出为Tue而不是3(星期几从1开始索引),而不是通过日历,只需重新格式化字符串:new SimpleDateFormat("EE").format(date)EE意为“星期几,短版”)

Documentation


0
投票

tl;dr

LocalDate.of( 2017 , Month.MARCH , 9 )
    .getDayOfWeek()
    .getDisplayName( TextStyle.FULL , Locale.ITALY )

要么…

OffsetDateTime.now( ZoneOffset.UTC )
    .format( DateTimeFormatter.RFC_1123_DATE_TIME )

java.time

现代方法使用java.time类来取代麻烦的旧日期时间类。

DayOfWeek枚举定义了七个对象,一周中的每一天,周一至周日。

LocalDate类表示没有时间且没有时区的仅日期值。

DayOfWeek dow = LocalDate.now().getDayOfWeek() ;

生成本地化名称的字符串。

String output = dow.getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH ) ;  // Or Locale.US etc.

要暂时生成较长的字符串,请使用DateTimeFormatter指定自定义模式,使用内置模式或自动本地化。

String output = OffsetDateTime.now( ZoneOffset.UTC ).format( DateTimeFormatter.RFC_1123_DATE_TIME ) ;

About java.time

java.time框架内置于Java 8及更高版本中。这些类取代了麻烦的旧legacy日期时间类,如java.util.DateCalendarSimpleDateFormat

现在在Joda-Timemaintenance mode项目建议迁移到java.time班。

要了解更多信息,请参阅Oracle Tutorial。并搜索Stack Overflow以获取许多示例和解释。规格是JSR 310

您可以直接与数据库交换java.time对象。使用符合JDBC driver或更高版本的JDBC 4.2。不需要字符串,不需要java.sql.*类。

从哪里获取java.time类?

ThreeTen-Extra项目使用其他类扩展了java.time。该项目是未来可能添加到java.time的试验场。你可能会在这里找到一些有用的类,如IntervalYearWeekYearQuartermore

© www.soinside.com 2019 - 2024. All rights reserved.