我正在将事件记录到mySQL数据库中,并希望获得前3个事件用于监视目的.
我的表eventlog看起来像这样:
+----+------------------+---------------------+
| id | eventname | eventdate |
+----+------------------+---------------------+
| 0 | machine1.started | 2016-09-04 19:22:23 |
| 1 | machine2.reboot | 2016-09-04 20:23:11 |
| 2 | machine1.stopped | 2016-09-04 20:24:12 |
| 3 | machine1.started | 2016-09-04 20:25:12 |
| 4 | machine1.stopped | 2016-09-04 23:23:16 |
| 5 | machine0.started | 2016-09-04 23:24:00 |
| 6 | machine1.started | 2016-09-04 23:24:16 |
| 7 | machine3.started | 2016-09-04 23:25:00 |
| 8 | …Run Code Online (Sandbox Code Playgroud) 我有一个JavaFX UI,允许用户指定时间跨度。它包含两个DatePicker,一个用于选择时间范围的开始日期,另一个用于选择时间范围的结束日期。
显然,我不希望用户选择开始日期在结束日期之后,反之亦然。
我已经DayCellFactory为两个日期选择器设置了自定义,如/sf/answers/3246106601/中所述。该操作按预期的方式在DatePickers初始化期间指定的初始时间范围内使用。但是,例如,如果用户随后选择其他开始日期,则结束日期DatePicker仍会显示初始可选日期,并且不会将其可选日期调整为新的开始日期。这是我使用属性侦听器的方法,这当然不起作用:
public final class DatePickerUtil {
public static void constrainLowerUpperBounds(DatePicker lowerBoundDatePicker, DatePicker upperBoundDatePicker) {
LocalDate lowerBound = lowerBoundDatePicker.getValue();
LocalDate upperBound = upperBoundDatePicker.getValue();
if (lowerBound.isAfter(upperBound)) {
throw new IllegalStateException("Upper bound date picker has older date than lower bound date picker");
}
lowerBoundDatePicker.setEditable(true);
upperBoundDatePicker.setEditable(true);
lowerBoundDatePicker.setDayCellFactory(createDayCellFactory(null, upperBound));
upperBoundDatePicker.setDayCellFactory(createDayCellFactory(lowerBound, null));
lowerBoundDatePicker.valueProperty().addListener((observable, oldValue, newValue) -> {
upperBoundDatePicker.setDayCellFactory(createDayCellFactory(newValue, null));
});
upperBoundDatePicker.valueProperty().addListener(((observable, oldValue, newValue) -> {
lowerBoundDatePicker.setDayCellFactory(createDayCellFactory(null, newValue));
}));
}
private static Callback<DatePicker, DateCell> createDayCellFactory(LocalDate lowerBound, LocalDate upperBound) {
return …Run Code Online (Sandbox Code Playgroud) 我的数据模型定义了多个结构,它们都有两个共同的字段:a StartDate和an EndDate.我需要将这两个字段格式化为2018-09-21编组的JSON,因此结构实现了Marshaller接口:
type Results struct {
Source string `json:"source"`
StartDate time.Time
EndDate time.Time
}
type WeightedResults struct {
Source string `json:"source"`
StartDate time.Time
EndDate time.Time
}
func (r Results) MarshalJSON() ([]byte, error) {
type Alias Results
if equalDate(r.StartDate, r.EndDate) {
return json.Marshal(&struct {
Date string `json:"date"`
Alias
}{
Date: r.StartDate.Format(dateFormat),
Alias: (Alias)(r),
})
}
return json.Marshal(&struct {
StartDate string `json:"start_date"`
EndDate string `json:"end_date"`
Alias
}{
StartDate: r.StartDate.Format("2006-01-02"),
EndDate: r.EndDate.Format("2006-01-02"),
Alias: (Alias)(r),
})
} …Run Code Online (Sandbox Code Playgroud)