Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.90/72: Рейтинг темы: голосов - 72, средняя оценка - 4.90
1 / 1 / 0
Регистрация: 24.02.2011
Сообщений: 64
1

Преобразование строки в дату

10.06.2011, 15:51. Просмотров 14542. Ответов 11
Метки нет (Все метки)

Есть строка формата:
"YYYY-MM-DD HH:MM:SS"
или
"2010-10-06 22:33:44"
можно ее как нибудь не разбирая все на части перевести в DateTime?
Если можно действующий пример.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.06.2011, 15:51
Ответы с готовыми решениями:

Преобразование строки в дату
Всем привет! Есть строка вида "текст текст текст 9 Jan 1973 текст текст текст" ее необходимо...

Преобразование строки в дату
Привет, всем. Задача такая: Есть данные в элементе формы INPUT. Там люди вводят даты типа...

преобразование строки в дату
Доброго времени суто, товарищи, помогите советом.. имеется строка подобного вида "28/12/2016...

Преобразование строки в дату
Здравствуйте! Есть дата - время, например: 08/20/15 01:37:00 PM В программе реализовал получение...

11
1359 / 729 / 66
Регистрация: 28.01.2011
Сообщений: 2,051
10.06.2011, 16:05 2
Не понимаю логику вопроса, как дату переделать в дату?
Может подробней изложиш проблемку...
0
1 / 1 / 0
Регистрация: 24.02.2011
Сообщений: 64
10.06.2011, 16:09  [ТС] 3
есть char * его нужно перебить в DateTime
0
1278 / 602 / 115
Регистрация: 18.08.2009
Сообщений: 832
10.06.2011, 16:10 4
C++
1
2
3
4
TDateTime dt;
if (TryStrToDateTime("2010-10-06 22:33:44",dt)) {
       // используем dt       
}
0
1 / 1 / 0
Регистрация: 24.02.2011
Сообщений: 64
10.06.2011, 16:28  [ТС] 5
Не переводит.
Формат видимо не подходит.
0
1278 / 602 / 115
Регистрация: 18.08.2009
Сообщений: 832
10.06.2011, 18:58 6
Лучший ответ Сообщение было отмечено как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
TDateTime dt;
    TFormatSettings FormatSettings;
 
    FormatSettings.DateSeparator = '-';
    FormatSettings.TimeSeparator = ':';
    FormatSettings.LongDateFormat = "YYYY-MM-DD";
    FormatSettings.ShortDateFormat = "YYYY-MM-DD";
    FormatSettings.ShortTimeFormat = "HH:MM:SS";
    FormatSettings.LongTimeFormat = "HH:MM:SS";
 
    if (TryStrToDateTime("2010-10-06 22:33:44", dt, FormatSettings)) {
        // используем dt
    }
6
1 / 1 / 0
Регистрация: 24.02.2011
Сообщений: 64
10.06.2011, 22:35  [ТС] 7
Помогло.
Спасибо.
0
2 / 2 / 1
Регистрация: 16.06.2013
Сообщений: 33
31.07.2013, 22:33 8
Цитата Сообщение от Maluda Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
TDateTime dt;
    TFormatSettings FormatSettings;
 
    FormatSettings.DateSeparator = '-';
    FormatSettings.TimeSeparator = ':';
    FormatSettings.LongDateFormat = "YYYY-MM-DD";
    FormatSettings.ShortDateFormat = "YYYY-MM-DD";
    FormatSettings.ShortTimeFormat = "HH:MM:SS";
    FormatSettings.LongTimeFormat = "HH:MM:SS";
 
    if (TryStrToDateTime("2010-10-06 22:33:44", dt, FormatSettings)) {
        // используем dt
    }
у меня что-то не работает... на FormatSettings ругается...underfined говорит... может подключить нужно что-нибудь? или объявляю не так...
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
30307 / 19804 / 7745
Регистрация: 22.10.2011
Сообщений: 34,546
Записей в блоге: 6
01.08.2013, 00:20 9
Цитата Сообщение от Paxani4 Посмотреть сообщение
на FormatSettings ругается
Значит, версия Билдера старая. Изменяй глобальные переменные DateSeparator, TimeSeparator, и так далее (только я бы все-таки рекомендовал сохранить старые значения, и потом, после выполнения твоей задачи, восстановить как было. Негоже это, менять подобные настройки... Именно по той причине они в новых версиях и были вынесены в отдельный тип: смены как таковой не происходит, ты работаешь с локальной переменной)
0
2 / 2 / 1
Регистрация: 16.06.2013
Сообщений: 33
01.08.2013, 22:56 10
Цитата Сообщение от UI Посмотреть сообщение
Значит, версия Билдера старая. Изменяй глобальные переменные DateSeparator, TimeSeparator, и так далее (только я бы все-таки рекомендовал сохранить старые значения, и потом, после выполнения твоей задачи, восстановить как было. Негоже это, менять подобные настройки... Именно по той причине они в новых версиях и были вынесены в отдельный тип: смены как таковой не происходит, ты работаешь с локальной переменной)
изменять где?
они объявляются в файле SysUtils.hpp

C++
1
2
3
4
5
6
extern PACKAGE char DateSeparator;
extern PACKAGE char TimeSeparator;
extern PACKAGE AnsiString LongDateFormat;
extern PACKAGE AnsiString ShortDateFormat;
extern PACKAGE AnsiString ShortTimeFormat;
extern PACKAGE AnsiString LongTimeFormat;
зачем их изменять? и как (на что)?
0
90 / 90 / 22
Регистрация: 02.07.2013
Сообщений: 332
02.08.2013, 14:20 11
Paxani4, значит, без всякой структуры, меняешь глобальные переменные.
C++
1
DateSeparator = '-';
Менять их надо для того, чтобы TDateTime мог понять, в каком виде (формате) ему подсовывают дату и время. По-моему, это очевидно...
1
Эксперт С++
8329 / 6081 / 605
Регистрация: 10.12.2010
Сообщений: 28,265
Записей в блоге: 28
02.08.2013, 21:09 12
C++
1
2
3
DateSeparator = '-';
TimeSeparator = ':';
// итд
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.08.2013, 21:09

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Преобразование строки в дату
import java.util.Date; import java.text.SimpleDateFormat; public class NewClass { ...

Преобразование строки в дату
Добрый день В делфи код есть такой: for_date:= EncodeDate(ye,mo,da); ey=2011 mo=11 da=26 в С# я...

Преобразование строки в дату
Добрый день! Простите, что отвлекаю вопросом по избитой теме, но что-то не могу разобраться с...

Преобразование строки в дату
Всем привет, прошу не бить за тему, не нашёл ничего подходящего, хотя ссылок в поисковике море....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.