У меня есть 2 столбца базы данных в базе данных MySQL, показывающие время начала и окончания встреч. он хранится как «2019-01-01 00:00:00». Как взять это время (при условии, что оно в UT C) и преобразовать его в локальное системное время (например, P C, установленное в EST), а затем отобразить его внутри начального и конечного столбцов TableView?
Я настраиваю столбцы табличного представления следующим образом:
appTableViewStartColumn.setCellValueFactory(new PropertyValueFactory<Appointment, Calendar>("start"));
appTableViewEndColumn.setCellValueFactory(new PropertyValueFactory<Appointment, Calendar>("end"));
И это мой код для метода getAllAppointments:
public static ObservableList<Appointment> getAllAppointments() throws SQLException, Exception {
DatabaseConnection.makeConnection();
String sqlStatement = "SELECT appointmentId, customerId, type, start, end, customerName FROM appointment LEFT JOIN customer " +
"USING (customerId)";
Query.makeQuery(sqlStatement);
ResultSet result = Query.getResult();
while (result.next()) {
int appointmentId = result.getInt("appointmentId");
int customerIdIn = result.getInt("customerId");
String type = result.getString("type");
String customerName = result.getString("customerName");
// Following gets date as string, then converts it to Calendar
String startString = result.getString("start");
String endString = result.getString("end");
Calendar start = stringToCalendar(startString);
Calendar end = stringToCalendar(endString);
Appointment appointmentResult = new Appointment (appointmentId, customerIdIn, type, start, end, customerName);
allAppointments.add(appointmentResult);
}
Это метод, который я использовал для преобразования строки в календарь объект:
public static Calendar stringToCalendar (String stringDate) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date date = sdf.parse(stringDate);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar;
}