2016-03-04 4 views
0

Я пробовал много синтаксиса, но я не могу заставить его работать,как я могу отформатировать эту строку в мм/дд/гггг

из моего DataTable у меня есть эти значения, пожалуйста, смотрите ниже

enter image description here

приведенные выше значения взяты из jQuery datepicker, я просто делаю их значениями в моем запросе.

C#: Ловля значения из DatePicker с помощью этого parameter`

List<DateTime> WeekDates 

, как я могу сделать это, чтобы показать, как 1/6/2016. Спасибо за любую помощь!

 foreach (DataRow row in dt.Rows) 
     { 
      Sale sales = new Sales(); 
      sale.WeekStart = row["WeekStart"].ToString("MM/dd/yyyy"); 
     } 

UPDATE мои значения даты строка или DateTime уже? Я ловлю значение в моем WebMethod с помощью этого

List<DateTime> WeekDates, but when it comes to my dataTable it has a single quotes , notice it. 
+0

Что тип данных вашей 'строки [ "WeekStart"]' является его ' DateTime' или 'string'? – Ian

+0

тот, который будет удерживать строку [«WeekStart»], является строкой, но фактическое значение строки [«WeekStart»] не существует в базе данных, это из jquery datepicker, я просто включаю его в свой набор результатов запроса , –

ответ

0

Спасибо всем, кто ответил на мой вопрос.Что касается теперь быстрое решение для меня, чтобы удалить ненужные строки для отображения формата ММ/дд/гггг , используя следующий синтаксис

row["WeekStart"].ToString().Remove(9); 

Большинство из вас ответили на правильный синтаксис для преобразования его в ММ/дд/гггг но я понял, что значения дат из моего jQuery datepicker имеют одно значение кавычки, то, что я сделал, было удалено, прежде чем загружать мои параметры SQL, и все работает нормально. Я уже использовал этот синтаксис до того, как я разместил здесь, мне просто нужно удалить одиночную кавычку в своих значениях datetime.

2
[YourDateTimeVarialble].ToString("MM/dd/yyyy"); 
+0

Вам не хватает закрывающейся кавычки. ;-) –

+0

он не работает, см. Код выше. –

+0

"no overload for method 'ToString' принимает 1 аргумент –

1

Если эти значения пришли из базы данных, вы можете форматировать их, прежде чем заселять ваше DataTable. Для желаемого формата вы можете обратиться к этому post.

Update 1 Попробуйте форматирование JQuery DatePicker на что-то вроде:

$(".selector").datepicker({ dateFormat: "MM/dd/yyyy" }); 

Update 2

foreach (DataRow row in dt.Rows) 
{ 
    Sale sales = new Sales(); 
    sale.WeekStart = Convert.ToDateTime(row["WeekStart"]).ToString("MM/dd/yyyy"); 
} 
+0

Значения не из базы данных, это из jquery datepicker, и я делаю их значениями в моем запросе. –

+0

Можете ли вы попробовать обновление – Tony

+0

вызывает ошибку в ajax, –

1

Попробуйте

(DateTime.ParseExact(row["WeekStart"]), "M/d/YYYY hh:mm:SS tt", System.Globalization.CultureInfo.InvariantCulture)).ToString("MM/dd/yyyy"); 
+0

привет, он выдает сообщение об ошибке: String не был признан допустимым DateTime. –

+0

Это проблема. get: – Imad

+0

'(Convert.ToDateTime (строка [" WeekStart "]. Заменить (" '"," ")). ToString (" MM/dd/yyyy ");' Я думаю, что строка ["WeekStart"] имеет одиночные скобки –

1

Попробуйте что-нибудь как этот

string date = "1/6/2016 12:00:00 AM"; 
string d = Convert.ToDateTime(date).ToShortDateString(); 

O/P: 1/6/2016

В вашем случае, возможно, следующий код будет полезен

DataTable dt = new DataTable(); 
dt.Columns.Add("Date"); 
DataRow row1 = dt.NewRow(); 
row1["Date"] = "1/6/2016 12:00:00 AM"; 
dt.Rows.Add(row1); 
DataRow row2 = dt.NewRow(); 
row2["Date"] = "2/6/2016 12:00:00 AM"; 
dt.Rows.Add(row2); 

List<string> WeekStart = new List<string>(); 

foreach (DataRow row in dt.Rows) 
{ 
    WeekStart.Add(Convert.ToDateTime(row["Date"]).ToShortDateString()); 
} 
+0

привет, такая же ошибка снова: строка не была признана действительной DateTime. –

+0

Я думаю, что это может сработать, но в моем сценарии мне нужно запросить в базе данных, и я динамически создаю свой запрос и включаю эти значения datepicker вместе с их результатом запроса, например. общий объем продаж на этой неделе, поэтому я не должен добавлять его по возрастанию. –

+0

попробовал отредактировать код – user2148124

1

Вы пробовали

sale.WeekStart =DateTime.Parse(row["WeekStart"].ToString()).ToString("MM/dd/yyyy"); 

Я думаю, это работа для вас

+0

привет, он выдает сообщение об ошибке: String не был признан действительным DateTime. –

+0

yup you are right! когда мы проводим разборку, мы начинаем месяц, но в случае с 1/13/2016, предположим, 13 в качестве месяца, поэтому он выбрасывает исключение –

+0

Да, мы используем этот «MM/dd/yyy» правильно? почему он выдает исключение? –

1

попробуйте это

string text = row["Weekstart"].ToString(); 
DateTime date = DateTime.ParseExact(text, "dd/MM/yyyy", null); 
+0

hi, та же ошибка: строка не была признана действительной DateTime. –

+0

привет, я обновил свой ответ. – Angelo

2
[date].ToString("MM/dd/yyyy"); 

вы можете использовать этот один

Смежные вопросы