@@ -179,4 +179,49 @@ public void testIssue16() throws Exception {
179
179
assertEquals (6 , event .getLevel ());
180
180
assertEquals ("hostname testmsg[20]: Test" , event .getMessage ());
181
181
}
182
+
183
+ @ Test
184
+ public void testRFC5424Timestamps () throws Exception {
185
+ // https://tools.ietf.org/html/rfc5424#section-6.2.3.1
186
+ final String example1 = "<0>1985-04-12T23:20:50.52Z hostname test[42]: Test" ;
187
+ final SyslogServerEvent event1 = buildEvent (example1 );
188
+ assertEquals (new DateTime (1985 , 4 , 12 , 23 , 20 , 50 , 520 , DateTimeZone .UTC ).toDate (), event1 .getDate ());
189
+ assertEquals (0 , event1 .getFacility ());
190
+ assertEquals ("hostname" , event1 .getHost ());
191
+ assertEquals (0 , event1 .getLevel ());
192
+ assertEquals ("hostname test[42]: Test" , event1 .getMessage ());
193
+
194
+ final String example2 = "<0>1985-04-12T19:20:50.52-04:00 hostname test[42]: Test" ;
195
+ final SyslogServerEvent event2 = buildEvent (example2 );
196
+ assertEquals (new DateTime (1985 , 4 , 12 , 19 , 20 , 50 , 520 , DateTimeZone .forOffsetHours (-4 )).toDate (), event2 .getDate ());
197
+ assertEquals (0 , event2 .getFacility ());
198
+ assertEquals ("hostname" , event2 .getHost ());
199
+ assertEquals (0 , event2 .getLevel ());
200
+ assertEquals ("hostname test[42]: Test" , event2 .getMessage ());
201
+
202
+ final String example3 = "<0>2003-10-11T22:14:15.003Z hostname test[42]: Test" ;
203
+ final SyslogServerEvent event3 = buildEvent (example3 );
204
+ assertEquals (new DateTime (2003 , 10 , 11 , 22 , 14 , 15 , 3 , DateTimeZone .UTC ).toDate (), event3 .getDate ());
205
+ assertEquals (0 , event3 .getFacility ());
206
+ assertEquals ("hostname" , event3 .getHost ());
207
+ assertEquals (0 , event3 .getLevel ());
208
+ assertEquals ("hostname test[42]: Test" , event3 .getMessage ());
209
+
210
+ final String example4 = "<0>2003-08-24T05:14:15.000003-07:00 hostname test[42]: Test" ;
211
+ final SyslogServerEvent event4 = buildEvent (example4 );
212
+ assertEquals (new DateTime (2003 , 8 , 24 , 5 , 14 , 15 , 0 , DateTimeZone .forOffsetHours (-7 )).toDate (), event4 .getDate ());
213
+ assertEquals (0 , event4 .getFacility ());
214
+ assertEquals ("hostname" , event4 .getHost ());
215
+ assertEquals (0 , event4 .getLevel ());
216
+ assertEquals ("hostname test[42]: Test" , event4 .getMessage ());
217
+
218
+ final String example5 = "<0>2003-08-24T05:14:15.000000003-07:00 hostname test[42]: Test" ;
219
+ final SyslogServerEvent event5 = buildEvent (example5 );
220
+ // This *should* fail but the date/time parser seems to be too lenient. ;-)
221
+ assertEquals (new DateTime (2003 , 8 , 24 , 5 , 14 , 15 , 0 , DateTimeZone .forOffsetHours (-7 )).toDate (), event5 .getDate ());
222
+ assertEquals (0 , event5 .getFacility ());
223
+ assertEquals ("hostname" , event5 .getHost ());
224
+ assertEquals (0 , event5 .getLevel ());
225
+ assertEquals ("hostname test[42]: Test" , event5 .getMessage ());
226
+ }
182
227
}
0 commit comments