Tại sao String.Format("/")
được chuyển thành "-"?Tại sao String.Format chuyển đổi dấu gạch chéo về phía trước thành dấu trừ?
Trả lời
Tôi nghi ngờ bạn đang sử dụng biểu tượng /
bên trong trình giữ chỗ {0}
. Nó là một biểu tượng dành riêng được sử dụng như dấu phân cách datetime trong văn hóa đã cho. Bạn có thể thoát khỏi nó, như thế này:
string date = string.Format("{0:dd\\/MM\\/yyyy}", DateTime.Now);
Có vẻ như người seperator ngày trong văn hóa của bạn là "-" thay vì "/". thấy msdn và article
Chỉnh sửa này:
Bạn đã kiểm tra khu vực của bạn và cài đặt ngôn ngữ để đảm bảo bạn không có một tùy chọn được lựa chọn sử dụng "-".
Định dạng ngày ngắn của tôi là 'yyyy-MM-dd', nhưng' String.Format ("/") 'vẫn trả về' "/" '. – Guffa
@Guffa - Thú vị ... Có vẻ như tôi đã sủa nhầm cây –
Tôi cố gắng đó với tất cả các nền văn hóa có thể:
foreach (CultureInfo info in CultureInfo.GetCultures(CultureTypes.AllCultures)) {
Console.Write(String.Format(info, "/"));
}
Output:
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////
Vì vậy, điều đó không xảy ra bất cứ nơi nào.
Haha, yêu đầu ra – SwDevMan81
Theo Custom Date and Time Format Strings, /
đề cập đến dấu phân tách ngày của văn hóa. Vì vậy, bạn cần phải thoát khỏi nó. Bạn có thể sử dụng dấu gạch chéo ngược theo câu trả lời của Darin hoặc bạn có thể trích dẫn nó trong dấu nháy đơn. Ví dụ:
using System;
using System.Globalization;
class Test
{
static void Main()
{
DateTime date = DateTime.Now;
CultureInfo da = new CultureInfo("da");
// Prints 09-08-2011
Console.WriteLine(string.Format(da, "{0:dd/MM/yyyy}", date));
// Prints 09/08/2011
Console.WriteLine(string.Format(da, "{0:dd'/'MM'/'yyyy}", date));
// Prints 09/08/2011
Console.WriteLine(string.Format(da, "{0:dd\\/MM\\/yyyy}", date));
}
}
Cộng đồng Stack Overflow là miễn phí và _encouraged_ để cải thiện câu hỏi theo khả năng tốt nhất của họ. Nếu bạn không thoải mái với điều này, Stack Overflow có lẽ không dành cho bạn. Vui lòng xem [FAQ] (http://stackoverflow.com/faq) ngay khi thuận tiện nhất. –