Làm cách nào để tôi có thể chuyển đổi chuỗi như "Ngày Thứ Hai 25 tháng 3 năm 2010 ..." thành 25/03/10? Ngoài ra, điều này có khả thi không?Chuyển đổi chuỗi thành Ngày - C#
Trả lời
Bạn có thể sử dụng DateTime.ParseExact
, nhưng tôi nghĩ bạn phải xóa "Bật" trước khi cố gắng phân tích cú pháp.
EDIT Theo số format documentation bạn có thể không phải bỏ qua "Bật" sau.
var theDate = DateTime.ParseExact(theString, "On dddd ddth MMMM yyy",
CultureInfo.InvariantCulture);
Nên làm điều đó.
Như klausbyskov chỉ ra, DateTime.ParseExact
là cách để thực hiện. Tôi tin rằng chuỗi định dạng chính xác bạn cần được (thử nghiệm):
@"On dddd dd\t\h MMMM yyyy..."
Các 't' và ký tự 'h' cần phải được thoát vì chúng mang ý nghĩa đặc biệt ('AM/PM' và 'giờ' tương ứng).
Lưu ý rằng, trình phân tích cú pháp sẽ thực hiện một số kiểm tra xác thực. Đặc biệt, ví dụ của bạn sẽ không phân tích cú pháp kể từ ngày 25 tháng 3 năm 2010 đã xảy ra là một ngày thứ năm; thử nó với:
"On Thursday 25th March 2010..."
Đối với đầu ra, chuỗi định dạng mà bạn cần là:
"dd/MM/yy"
Bạn không thể làm điều này với ngày phân tích một mình. Bất kỳ chuỗi định dạng nào hoạt động cho ngày 25 sẽ bị lỗi cho ngày 22 hoặc ngày 23. Cá nhân, tôi sẽ sử dụng cụm từ thông dụng để tách ngày thành nội dung có thể phân tích cú pháp.
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");
sử dụng này:
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>";
}
}
}
}
Tại sao OP nên sử dụng điều này? Vui lòng giải thích! – markus
- 1. C++: chuyển đổi chuỗi ngày/giờ thành tm struct
- 2. chuyển đổi ngày chuỗi thành java.sql.Date
- 3. Chuyển đổi ngày giờ thành chuỗi
- 4. chuyển đổi Chuỗi thành Ngày trên GWT
- 5. Chuyển đổi chuỗi thành ngày giờ
- 6. Chuyển đổi C# DateTime thành Ngày Javascript
- 7. Chuyển đổi chuỗi thành ngày, định dạng: "dd.mm.yyyy"
- 8. Chuyển đổi chuỗi thành một ngày theo dạng .net
- 9. Chuyển đổi chuỗi thành nổi trong C#
- 10. chuyển đổi byte thành chuỗi C#
- 11. .NET/C# - Chuyển đổi char [] thành chuỗi
- 12. Chuyển đổi gấp đôi thành chuỗi C++?
- 13. Chuyển đổi đôi thành chuỗi trong C++
- 14. Chuyển đổi một CFStringRef thành chuỗi C?
- 15. Chuyển đổi mảng ngắn thành chuỗi C#
- 16. Chuyển đổi chuỗi ngày/giờ UTC trong C#
- 17. Cách chuyển đổi chuỗi thành một ngày trong sybase
- 18. ngày sql chuyển đổi thành định dạng chuỗi
- 19. Chuyển đổi chuỗi thành Ngày tháng trong java
- 20. Chuyển đổi chuỗi trả lại (YYYYMMDD) thành Ngày
- 21. chuyển đổi một chuỗi ngày thành mili giây trong java
- 22. Chuyển đổi chuỗi thành ngày trước khi lưu với Rails
- 23. perl cách chuyển đổi chuỗi thành Ngày giờ?
- 24. chuyển đổi chuỗi thành kiểu ngày tháng python
- 25. VB.NET: Làm thế nào để chuyển đổi chuỗi thành Ngày?
- 26. Chuyển đổi chuỗi thành một ngày trong DB2
- 27. Chuyển đổi chuỗi thành định dạng ngày trong android
- 28. Cách chuyển đổi ngày chuỗi ký tự thành lớp ngày nếu giá trị ngày bị thiếu
- 29. Chuyển đổi ngày mySQL thành ngày Javascript
- 30. Chuyển đổi chuỗi thành GregorianCalendar
Bạn có nghĩa là 25/03/10? –