如何在GWT中获得一周的周数

时间:2014-05-29 17:07:49

标签: java gwt time

是否有一种简单的方法可以从Date对象或客户端GWT的毫秒时间获取一周的信息?

3 个答案:

答案 0 :(得分:3)

这样的事情:

Date date = new Date();
Date yearStart = new Date(date.getYear(), 0, 0);

int week = (int) (date.getTime() - yearStart.getTime())/(7 * 24 * 60 * 60 * 1000);

请注意,这将为您提供Date对象中的一周,该对象没有时区信息。使用时,您可能需要使用时区信息进行调整。

答案 1 :(得分:1)

java.time

旧的日期时间 API(java.util 日期时间类型及其格式 API,SimpleDateFormat)已经过时且容易出错。建议完全停止使用,改用java.timemodern date-time API*

使用现代 API 的解决方案:

import java.time.LocalDate;
import java.time.ZoneId;
import java.time.temporal.ChronoField;

public class Main {
    public static void main(String[] args) {
        LocalDate date = LocalDate.now(ZoneId.systemDefault());
        int weekOfYear = date.get(ChronoField.ALIGNED_WEEK_OF_YEAR);
        System.out.println(weekOfYear);
    }
}

输出:

18

modern date-time API 中了解有关 Trail: Date Time* 的更多信息。


* 出于任何原因,如果您必须坚持使用 Java 6 或 Java 7,您可以使用 ThreeTen-Backport,它将大部分 java.time 功能向后移植到 Java 6 & 7. 如果您正在为 Android 项目工作并且您的 Android API 级别仍然不符合 Java-8,请检查 Java 8+ APIs available through desugaringHow to use ThreeTenABP in Android Project

答案 2 :(得分:0)

如何使用GWT对象不确定,但因为GWT代码在编译时转换为javascript,所以你可以这样做:

http://javascript.about.com/library/blweekyear.htm