Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DateTime в строку формата день/месяц/год 
:(
    Опции темы
xess
Дата 18.4.2007, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 9.3.2007

Репутация: нет
Всего: нет



нужно значение в dateTimePicker преобразовать в строку типа "dd/mm/yyyy", например, "01/01/2007"

перепробывал все что знал...
например, dateTimePicker.Value.ToString("d") и dateTimePicker.Value.ToString("dd/mm/yy") переводят в "01.01.2007", а надо со слешами чтоб было  smile 


PM MAIL   Вверх
Injener
Дата 18.4.2007, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 6.10.2006
Где: СПб

Репутация: нет
Всего: 1



Код

textBox1.Text = dateTimePicker1.Value.ToString("dd") + "/" +
                dateTimePicker1.Value.ToString("MM") + "/" + 
                dateTimePicker1.Value.ToString("yyyy");

--------------------
Любое дело можно сделать тремя способами:1) правильно2) неправильно3) и так как это делают в армии
PM MAIL   Вверх
Walker
Дата 18.4.2007, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 363
Регистрация: 23.10.2006

Репутация: 5
Всего: 16



msdn
Цитата

If the Format property is set to DateTimePickerFormat.Custom, you can create your own format style by setting the CustomFormat property and building a custom format string. The custom format string can be a combination of custom field characters and other literal characters. For example, you can display the date as "June 01, 2001 - Friday" by setting the CustomFormat property to "MMMM dd, yyyy - dddd". For more information, see Date and Time Format Strings.



Это сообщение отредактировал(а) Walker - 18.4.2007, 11:56


--------------------
"От вчерашних побед остаётся усталость, если завтрашний день не сулит ничего..."
PM MAIL   Вверх
mr.DUDA
Дата 18.4.2007, 12:01 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Экранируй слеши в форматирующей строке.


--------------------
user posted image
PM MAIL WWW   Вверх
Injener
Дата 18.4.2007, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 6.10.2006
Где: СПб

Репутация: нет
Всего: 1



Walker, то что ты предложил позволяет лишь отображать дату непосредственно в dateTimePicker1, а если нужно получить строку то CustomFormat на нее не влияет
--------------------
Любое дело можно сделать тремя способами:1) правильно2) неправильно3) и так как это делают в армии
PM MAIL   Вверх
xess
Дата 18.4.2007, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 9.3.2007

Репутация: нет
Всего: нет



Цитата(Injener @ 18.4.2007,  11:50)
Код

textBox1.Text = dateTimePicker1.Value.ToString("dd") + "/" +
                dateTimePicker1.Value.ToString("MM") + "/" + 
                dateTimePicker1.Value.ToString("yyyy");

а с помощью одного ToString() Нельзя? smile Почему-то .ToString("d") с точками переводит :( хотя в msdn указано что слеши должны быть.

Добавлено через 1 минуту и 45 секунд
Цитата(mr.DUDA @ 18.4.2007,  12:01)
Экранируй слеши в форматирующей строке.

извини, не совсем понял  smile 
можно подробнее?
PM MAIL   Вверх
QryStaL
Дата 18.4.2007, 12:31 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


Профиль
Группа: Участник
Сообщений: 914
Регистрация: 30.11.2005

Репутация: 14
Всего: 32



Код

            System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("en-us");
            string x = dateTimePicker1.Value.ToString("dd/MM/yyyy", ci);


"В msdn указано что слеши должны быть" - у них по умолчанию стоит американская культура  smile 

Это сообщение отредактировал(а) QryStaL - 18.4.2007, 12:33


--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
Walker
Дата 18.4.2007, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 363
Регистрация: 23.10.2006

Репутация: 5
Всего: 16



Цитата

Walker, то что ты предложил позволяет лишь отображать дату непосредственно в dateTimePicker1, а если нужно получить строку то CustomFormat на нее не влияет 

Спасибо! Прошу извинить за невнимательность!user posted image
 smile 
Цитата

Цитата(mr.DUDA @ 18.4.2007,  12:01) 
Экранируй слеши в форматирующей строке. 

извини, не совсем понял

Обратный слэш '\' в сочетании с некоторыми символами даёт так называемые "управляющие последовательности", предназначенные для форматирования текста. Поэтому в случаях, когда нужно, чтобы обратный слэш обозначал именно сам себя, его необходимо экранировать самим же собой.smile 
Код

("c:\\myfolder\\myfile.txt")

Если в строке обратных слэшей много (путь к файлу), компилятор css даёт возможность экранирования сразу всех установкой символа '@' в начале строки
Код

(@"c:\myfolder\myfile.txt")




Это сообщение отредактировал(а) Walker - 18.4.2007, 15:02


--------------------
"От вчерашних побед остаётся усталость, если завтрашний день не сулит ничего..."
PM MAIL   Вверх
xess
Дата 18.4.2007, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 9.3.2007

Репутация: нет
Всего: нет



Цитата(QryStaL @ 18.4.2007,  12:31)
Код

            System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("en-us");
            string x = dateTimePicker1.Value.ToString("dd/MM/yyyy", ci);


"В msdn указано что слеши должны быть" - у них по умолчанию стоит американская культура  smile

Хы, спасибо smile
PM MAIL   Вверх
xess
Дата 18.4.2007, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 9.3.2007

Репутация: нет
Всего: нет



кстати, нашел еще похожий вариант smile но более компактный smile
Код

using System.Globalization; 
...
string x = dateTimePicker1.Value.ToString("d", DateTimeFormatInfo.InvariantInfo);

PM MAIL   Вверх
VeryWell
Дата 27.7.2009, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 15.3.2009

Репутация: нет
Всего: нет



Можно переформарировать такую строку используя Regex'ы. 
PM MAIL   Вверх
Heinzz
Дата 27.7.2009, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 12.12.2008
Где: .net

Репутация: 5
Всего: 9



Код

textBox1.Text = Regex.Replace(dateTimePicker1.Value.ToString(), @"^(?<D>\d{2}).(?<M>\d{2}).(?<Y>\d{4}).*$","${D}/${M}/${Y}");




--------------------
user posted image
PM MAIL   Вверх
QryStaL
Дата 27.7.2009, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


Профиль
Группа: Участник
Сообщений: 914
Регистрация: 30.11.2005

Репутация: 14
Всего: 32



Цитата(VeryWell @  27.7.2009,  15:58 Найти цитируемый пост)
Можно переформарировать такую строку используя Regex'ы. 

Только зачем, если есть более удобные встроенные механизмы? )


--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
VeryWell
Дата 29.7.2009, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 15.3.2009

Репутация: нет
Всего: нет



Цитата

Только зачем, если есть более удобные встроенные механизмы? ) 

Согласен, я лишь поддержал свободу выбора.
PM MAIL   Вверх
jonie
Дата 29.7.2009, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 22
Всего: 118



Цитата
Можно переформарировать такую строку используя Regex'ы. 

этак можно распарсить в int-ы и путем нехитрых вычислений получить количество секунд, затем провернуть все в "зад".. свобода выбора (с)...
Это как тут:
user posted image
примерно


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.2309 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.