Как я мог бы преобразовать строку типа «В понедельник 25 марта 2010 ...» до 25/03/10? Кроме того, возможно ли это?Преобразование строки в Date - C#
ответ
Вы можете использовать DateTime.ParseExact
, но я думаю, вам нужно снять «Вкл.», Прежде чем пытаться его разобрать.
EDIT В соответствии с format documentation вам, вероятно, не обязательно удалять «On» afterall.
var theDate = DateTime.ParseExact(theString, "On dddd ddth MMMM yyy",
CultureInfo.InvariantCulture);
Должно сделать это.
Как указывает klausbyskov, DateTime.ParseExact
- это путь. Я считаю, что правильная строка формата вам нужно будет (проверено):
@"On dddd dd\t\h MMMM yyyy..."
«т» и «H» символы должны быть экранированы, так как они имеют особую значимость («AM/PM» и «час», соответственно,).
Обратите внимание, что анализатор проведет некоторые проверки. В частности, ваш пример не будет разбираться с 25 марта 2010 года, когда он будет в четверг; попробуйте это:
"On Thursday 25th March 2010..."
Как для вывода, формат строки вам нужно:
"dd/MM/yy"
Вы не можете сделать это с датой разбора в одиночку. Любая строка формата, которая работает в течение 25-го, будет сбой для 22-го или 23-го. Лично я использую регулярное выражение, чтобы разделить дату на что-то разборчивое.
string s = "On Monday 25th March 2010";
string pattern = @"^[^0-9]+(\d+)(\w\w)?";
string clean = Regex.Replace(s, pattern,@"$1");
string result = DateTime.ParseExact(clean,"dd MMMM yyyy",
CultureInfo.InvariantCulture)
.ToString("dd/MM/yy");
использовать это:
using System; using System.Collections.Generic; using
System.ComponentModel; using System.Data; using System.Drawing; using
System.Text; using System.Windows.Forms;
namespace DateTimeConvert {
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
label1.Text= ConvDate_as_str(textBox1.Text);
}
public string ConvDate_as_str(string dateFormat)
{
try
{
char[] ch = dateFormat.ToCharArray();
string[] sps = dateFormat.Split(' ');
string[] spd = sps[0].Split('.');
dateFormat = spd[0] + ":" + spd[1]+" "+sps[1];
DateTime dt = new DateTime();
dt = Convert.ToDateTime(dateFormat);
return dt.Hour.ToString("00") + dt.Minute.ToString("00");
}
catch (Exception ex)
{
return "Enter Correct Format like <5.12 pm>";
}
}
private void button2_Click(object sender, EventArgs e)
{
label2.Text = ConvDate_as_date(textBox2.Text);
}
public string ConvDate_as_date(string stringFormat)
{
try
{
string hour = stringFormat.Substring(0, 2);
string min = stringFormat.Substring(2, 2);
DateTime dt = new DateTime();
dt = Convert.ToDateTime(hour+":"+min);
return String.Format("{0:t}", dt); ;
}
catch (Exception ex)
{
return "Please Enter Correct format like <0559>";
}
}
}
}
Зачем OP использовать это? Пожалуйста, объясни! – markus
- 1. Преобразование строки date date
- 2. Преобразование строки в Date
- 3. Преобразование строки в Date
- 4. Преобразование строки в Date - Date Validation
- 5. Преобразование строки в объект Date
- 6. Преобразование строки в javascript date
- 7. Преобразование C# date в Javascript
- 8. Преобразование временной строки в объект Date
- 9. Преобразование строки в Date в java
- 10. Преобразование строки в Date в Informix DB
- 11. Преобразование строки в Date/Timestamp in Hive
- 12. Преобразование строки Java в Time, NOT Date
- 13. Преобразование строки даты Javascript в PHP date
- 14. Преобразование строки даты Java в JavaScript date
- 15. Преобразование строки в Date - Получение ошибки
- 16. Преобразование из строки в Date с PHP
- 17. Преобразование даты строки в объект Date
- 18. Преобразование строки в Date с помощью SimpleDateFormat
- 19. Преобразование строки Date в формат DateTime?
- 20. Преобразование Oracle Date в C# DateTime
- 21. Преобразование SQLite Date Field в C++ Time_T
- 22. Преобразование C# DateTime в Javascript Date
- 23. Преобразование строки в дату C#
- 24. Преобразование строки Date и Time to DateTime
- 25. Преобразование значения строки в Date/Datetime в mySQL
- 26. Преобразование NUMBER в DATE
- 27. Преобразование nvarchar в DATE
- 28. Преобразование LocalDate.MAX в Date
- 29. Преобразование TIME_DURATION в DATE
- 30. Преобразование DATE в SQL400
ли вы имеете в виду 25/03/10? –