Имя: Пароль:
1C
1С v8
Преобразовать строку в дату 12/24
,
0 lirt82
 
21.04.22
07:55
Как преобразовать строку с датой в 24-вой формат?
Дата("4/19/2022 10:56:27 PM") Преобразование значения к типу Дата не может быть выполнено
1 Ненавижу 1С
 
гуру
21.04.22
08:00
(0)
Способы:
1. распарсить строку правильно, преобразовать в дату, вывести в нужном формате
2. найти хвост, если он "PM", то найти часы между "первым пробелом и первым двоеточием", преобразовать в число, добавить 12, вернуть в строку. Строку выводить без хвоста AM/PM
2 hhhh
 
21.04.22
08:01
(0) несложно свою функцию написать.
3 lirt82
 
21.04.22
08:02
(1) 2 вариант:)
4 Serg_1960
 
21.04.22
08:26
(2) Сложно написать красиво :)
5 Serg_1960
 
21.04.22
08:34
(1) Неверно и некрасиво.
6 dreizehn
 
21.04.22
08:37
(1) А месяц и день на нужные позиции ставить - Александр Сергеевич будет?
7 Ненавижу 1С
 
гуру
21.04.22
08:43
(6) а какие нужные?
8 Fish
 
21.04.22
08:45
(7) "Строка должна содержать дату в локальном формате даты или в каноническом виде YYYYMMDDHHMMSS." (c)
9 Azverin
 
21.04.22
09:08
Я вот специально навёл на ник ТС. Увидел Вуди и успокоился.
10 Serg_1960
 
21.04.22
09:28
(1) "преобразовать в число, добавить 12"...
12:00 a.m. это... 00:00 (24:00 - армия, авиация, космос, метеорологи, медики, спец.службы и т.д.), а 12:00 p.m. - это... 12:00, полдень :)
11 Ненавижу 1С
 
гуру
21.04.22
09:41
(8) это как следует из написанного в (0)?
12 VoditelKobyly
 
21.04.22
09:41
(0) Подключиться напрямую к SQL базе и кинуть запрос что-то типа: select
convert(datetime, '4/19/2022 10:56:27 PM',102)
13 Fish
 
21.04.22
09:44
(11) в (0) озвучена цель: преобразовать строку в дату. Для преобразования строка должна содержать дату в каноническом виде. Это очевидно вообще-то.
14 dreizehn
 
21.04.22
09:52
(12) А вы умножать два на два, наверно, на микросервис на GO ходите? Шардинг там, высокая эффективность?
15 Ненавижу 1С
 
гуру
21.04.22
09:53
(13) в (0) озвучена цель получить представление даты в 24-часовом формате
и больше ничего не озвучено
и для этого вообще можно дату не получать
16 Fram
 
21.04.22
11:01
(0) дата время в американском формате. А таймзона где?
17 Fish
 
21.04.22
11:07
А вообще, можно посмотреть Функцию БСП СтроковыеФункцииКлиентСервер.СтрокаВДату()
18 Fish
 
21.04.22
11:16
(15) "и больше ничего не озвучено" - А заголовок ветки не читал?
19 Ненавижу 1С
 
гуру
21.04.22
11:54
(18) не бывает даты 12/24 виде, бывает ее представление
человек хочет строковое представление даты
20 Serg_1960
 
21.04.22
12:01
(17) Лень смотреть, но кажется эта функция преобразует строку в дату без времени. И американский формат даты (месяц/день/год) не понимает.
21 Serg_1960
 
21.04.22
12:06
(19) И не озвучивает формат строкового представления даты - это же Волшебный форум телепатов :)
22 Fish
 
21.04.22
12:15
(20) Не, время там можно задать параметром. А по поводу формата - я же не предлагал использовать функцию как есть, а предлагал посмотреть. Имхо, в качестве примера для написания своей функции она неплоха.
23 Garykom
 
гуру
21.04.22
12:20
(0) Нанять программиста.
24 Serg_1960
 
21.04.22
14:08
"А что у вас?" (дело было вечером, делать было нечего)...

    Пример = "4/19/2022 10:56:27 PM";
    
    Строки    = СтрРазделить(Пример, " "); Дата = Строки[0]; Время = Строки[1]; Признак = Строки[2];
    Строки = СтрРазделить(Дата,"/"); День = Число(Строки[1]); Месяц = Число(Строки[0]); Год = Число(Строки[2]);
    Строки = СтрРазделить(Время,":"); Час = Число(Строки[0]); Минута = Число(Строки[1]); Секунда = Число(Строки[2]);
    Час = ?(Признак = "AM", ?(Час = 12, Час - 12, Час), ?(Час <> 12, Час + 12, Час));
    
    Результат = Формат(Дата(Год, Месяц, День, Час, Минута, Секунда),"ДФ='dd.MM.yyyy HH:mm:ss'");
25 НЕА123
 
21.04.22
15:10
(24)
Строки = СтрРазделить(Пример, "/ :");
Месяц = Строки[0];
Дата = Строки[1];
......
по СП можно. у меня работает. однако, в какой-то платформе не работает(ищет второй параметр целиком)
26 Serg_1960
 
21.04.22
16:32
(25) У меня в УПП совместимость, наверное, не позволяет использовать сразу несколько разделителей, поэтому вот такое поэтапное разделение.
27 Garykom
 
гуру
21.04.22
16:37
(25) СтрЗаменить сначала сделать пару раз, тоже нашел траблу