Я пытаюсь узнать номер дня, например, 1, 2 или 3, передав название дня, например Понедельник или Вторник, потому что номер дня может меняться в зависимости от системного календаря (некоторые календари начинаются с воскресенья). день в какой-то понедельник).
Мне нужно узнать даты понедельника, пятницы или воскресенья, передав индекс этих дней и номер недели.
Я могу узнать номер недели на основе даты, но для передачи номера дня (или индекса) мне нужно узнать точный индекс на основе этой локальной системы.
Подскажите пожалуйста, можно или нет?
import java.time.LocalDateTime;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;
public class HelloWorld{
public static void main(String []args){
String str = "2018-06-08 12:34:21";
int sDate, eDate;
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime assignedDateTime = LocalDateTime.parse(str, formatter);
//LocalDate assignedDate = assignedDateTime.toLocalDate();
Instant instant = assignedDateTime.atZone(ZoneId.systemDefault()).toInstant();
Date dateFromOld = Date.from(instant);
Calendar calendar = new GregorianCalendar();
calendar.setTime(dateFromOld);
int weekNumber = calendar.get(calendar.WEEK_OF_MONTH);
int dayofWeek = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println(assignedDateTime);
System.out.println(dateFromOld);
System.out.println(weekNumber);
System.out.println(dayofWeek);
}
}
Это код, который я написал, и из него я могу узнать номер дня недели для требуемой даты.
Но я хочу узнать номер дня по имени дня, и я не нашел для этого никаких методов. Есть некоторая логика, чтобы выяснить это, например, написание функций Enum, но эта логика также терпит неудачу в некоторых случаях, например, если система имеет другой день начала от нашей функции перечисления.
Надеюсь теперь понятно.
java.time
, современный API даты и времени Java, нет причин, по которым вы должны также использовать какие-либо старые и устаревшие классы, такие какDate
иCalendar
. Современный API предлагает все функции, о которых вы только можете мечтать. Так что нет, @JohnBollinger, я категорически не согласен с изучениемjava.util.Calendar
. - person Ole V.V.   schedule 08.06.2018