|
9 | 9 | @Slf4j |
10 | 10 | public class DateTimeUtils { |
11 | 11 |
|
12 | | - private static String[] monthsRu = {"января","февраля","марта","апреля","мая","июня", |
13 | | - "июля","августа","сентября","октября","ноября","декабря"}; |
| 12 | + private final static String[] MONTHS_RU = {"января","февраля","марта","апреля","мая","июня","июля","августа", |
| 13 | + "сентября","октября","ноября","декабря"}; |
| 14 | + private final static String[] MONTHS_CZ = {"ledna","února","března","dubna","května","června","července","srpna", |
| 15 | + "září","října","listopadu","prosince"}; |
14 | 16 |
|
15 | | - public static LocalDateTime convertDateTime(String dateTime) { |
16 | | - String[] dt = dateTime.split("[ ,]+"); |
17 | | - if (dt[0].length() == 1) { |
18 | | - dt[0] = "0" + dt[0]; |
| 17 | + /** |
| 18 | + * Convert date-time in String to LocalDateTime |
| 19 | + * |
| 20 | + * @param strDateTime |
| 21 | + * @return LocalDateTime |
| 22 | + */ |
| 23 | + public static LocalDateTime convertDateTime(String strDateTime) { |
| 24 | + LocalDateTime dateTime = null; |
| 25 | + String[] dt = strDateTime.split("[ ,\\.]+"); |
| 26 | + if (dt.length == 5) { |
| 27 | + dt = new String[]{dt[1], dt[2], dt[3], dt[4]}; |
19 | 28 | } |
20 | 29 |
|
21 | | - int idx = Arrays.asList(monthsRu).indexOf(dt[1].toLowerCase()); |
22 | | - dt[1] = String.valueOf(idx + 1); |
23 | | - if (dt[1].length() == 1) { |
24 | | - dt[1] = "0" + dt[1]; |
| 30 | + int idx = Arrays.asList(MONTHS_RU).indexOf(dt[1].toLowerCase()); |
| 31 | + if (idx < 0) { |
| 32 | + idx = Arrays.asList(MONTHS_CZ).indexOf(dt[1].toLowerCase()); |
25 | 33 | } |
| 34 | + dt[1] = String.valueOf(idx + 1); |
26 | 35 |
|
27 | | - return LocalDateTime.parse(String.join(" ", dt), DateTimeFormatter.ofPattern("dd MM yyyy HH:mm")); |
| 36 | + try { |
| 37 | + dateTime = LocalDateTime.parse(String.join(" ", dt), DateTimeFormatter.ofPattern("d M yyyy HH:mm")); |
| 38 | + } catch (Exception e) { |
| 39 | + log.error(e.getMessage()); |
| 40 | + } |
| 41 | + return dateTime; |
28 | 42 | } |
29 | 43 |
|
| 44 | + /** |
| 45 | + * Convert date and time in String to LocalDateTime |
| 46 | + * |
| 47 | + * @param date |
| 48 | + * @param time |
| 49 | + * @return LocalDateTime |
| 50 | + */ |
30 | 51 | public static LocalDateTime convertDateTime(String date, String time) { |
31 | 52 | LocalDateTime dateTime = null; |
32 | 53 | try { |
33 | | - dateTime = LocalDateTime.parse(date + " " + time, DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm")); |
| 54 | + dateTime = LocalDateTime.parse(date + " " + time, DateTimeFormatter.ofPattern("d.M.yyyy HH:mm")); |
34 | 55 | } catch (Exception e) { |
35 | 56 | log.error(e.getMessage()); |
36 | 57 | } |
37 | 58 | return dateTime; |
38 | 59 | } |
39 | 60 |
|
40 | 61 | public static void main(String[] args) { |
41 | | - String dt = "7 Сентября, 2023 15:39"; |
| 62 | + String dt = "вторник, 17. listopadu, 2023 15:39"; |
42 | 63 | System.out.println(convertDateTime(dt)); |
43 | 64 | } |
44 | 65 | } |
0 commit comments