2016-01-15 3 views
0

Я хочу, чтобы получить текущую неделю с определенной датой, например, если дата 2016/01/19, результат будет: week number: 3Получить текущую неделю в Java

Я видел некоторые вопросы и ответы по этому поводу, но я «Я не могу достичь того, чего хочу. Вот что я сделал:

public static int getCurrentWeek() { 
    String input = "20160115"; 
    String format = "yyyyMMdd"; 
    SimpleDateFormat df = new SimpleDateFormat(format); 
    Date date = df.parse(input); 
    Calendar cal = Calendar.getInstance(); 
    cal.setTime(date); 
    int week = cal.get(Calendar.WEEK_OF_YEAR); 

    return week; 
} 

Я взял этот код из this question, но у меня есть ошибка в этой строке:

Date date = df.parse(input); 

необработанное исключение типа ParseException

+1

Вы должны Объявите функция может вызывать 'ParseException':' public static int getCurrentWeek() throws ParseException {' – Manu

+0

Эта ссылка может помочь u http://stackoverflow.com/questions/16418661/java-get-week-number-from-any-date –

+0

Исправленное исключение javascript для jQuogling будет содержать много информации об этом. – khelwood

ответ

0

Look при этом измененном коде:

String input = "20160115"; 
    String format = "yyyyMMdd"; 
    try { 
     SimpleDateFormat df = new SimpleDateFormat(format); 
     Date date = df.parse(input); 
     Calendar cal = Calendar.getInstance(); 
     cal.setTime(date); 
     int week = cal.get(Calendar.WEEK_OF_YEAR); 

     System.out.println("Input " + input + " is in week " + week); 
     return week; 
    } catch (ParseException e) { 
     System.out.println("Could not find a week in " + input); 
     return 0; 
    } 

Вам нужно уловитьParseException и покончить с ним как-нибудь. Это может означать, возвращающий номер «по умолчанию» (0 в данном случае) или пропускание исключения вдоль (объявляя бросает на вашем методе)

3

Использование Java 8 LocalDate и WeekFields:

private int getCurrentWeek() { 
    LocalDate date = LocalDate.now(); 
    WeekFields weekFields = WeekFields.of(Locale.getDefault()); 
    return date.get(weekFields.weekOfWeekBasedYear()); 
} 
Смежные вопросы