2016-03-23 15 views
12

tình hình tôi đang ở là sau đây:sử dụng định dạng chuỗi từ một tài sản

Tôi có một chuỗi nội suy tìm kiếm như thế này:

DateTime DateOfSmth; 
string PlaceOfSmth; 
$"{DateOfSmth}, {PlaceOfSmth}".Trim(' ',','); 

Và một định dạng mà nên được sử dụng trên nó trong:

string Format = "{0:dd.MM.yyyy}"; 

Bây giờ tôi muốn sử dụng định dạng trong tài sản Format trong chuỗi suy, nhưng tôi không biết làm thế nào.

tức là: tôi muốn một cái gì đó như thế này là kết quả:

$"{DateOfSmth:Format}, {PlaceOfSmth}".Trim(' ',','); 

Có thể ai đó giúp đỡ?

+1

bạn có thể làm như thế này Console.WriteLine ($ "Name = {name}, hours = {hours: hh}") để biết thêm chi tiết, vui lòng truy cập https://msdn.microsoft .com/vi-us/library/dn961160.aspx – rashfmnb

+0

Cảm ơn bạn đã liên kết. Tôi đã nghiên cứu nó trước khi tôi đăng câu hỏi. Lý do thực sự tôi cần nó như tôi đã nói là vì tôi cần sử dụng chuỗi định dạng từ thuộc tính 'Định dạng'.và không viết trực tiếp vào chuỗi. – mishan

Trả lời

14

Hãy thử điều này:

string format = "dd.MM.yyyy"; 
Console.WriteLine($"{DateOfSmth.ToString(format)}"); 
+0

Cuối cùng tôi sử dụng một cái gì đó tương tự một chút. Bởi vì chuỗi định dạng có nội dung '{0: dd.MM.yyyy}' Tôi không thể sử dụng câu trả lời của bạn trực tiếp, nhưng điều này đã giúp ích rất nhiều. cảm ơn :) – mishan

+0

chỉ để cflarify - chuỗi định dạng được đưa ra và tôi không thể thay đổi nó. – mishan

2

Sửa: đây không phải là câu trả lời đúng cho câu hỏi nhưng nó sẽ là hữu ích nếu bạn muốn định dạng DateTime sử dụng ngày tháng và thời gian mong muốn của bạn định dạng.

Nếu bạn đang cố định dạng loại DateTime, có nhiều cách để làm điều này và tôi thấy cách tốt nhất là sử dụng phương pháp String.Format với thông số định dạng tùy chỉnh có liên quan đến ngày giờ (ví dụ: y) , M cho tháng và d cho ngày), hơn bạn có thể lưu trữ giá trị này trong một biến và sử dụng nó ở bất kỳ đâu.

Đây là một ví dụ làm việc:

DateTime currentDate = new DateTime(2015, 3, 23, 12, 40, 5, 112); 

String.Format("{0:y yy yyy yyyy}", currentDate); // result -> "15 15 015 2015" 
String.Format("{0:M MM MMM MMMM}", currentDate); // result -> "3 03 Mar March" 

Ngoài ra bạn có thể dùng specifiers định dạng chuẩn ví dụ:

t là dành cho "ShortTimePattern" mà sẽ cho kết quả (h: mm tt).

d là dành cho "ShortDatePattern" sẽ cho kết quả (M/d/yyyy).

T dành cho "LongTimePattern" sẽ cho kết quả (h: mm: ss tt).

D dành cho "LongDatePattern" sẽ cho kết quả (dddd, MMMM dd, yyyy).

Đây là một ví dụ làm việc:

String.Format("{0:t}", currentDate); // result -> "12:40 PM" ShortTime 
String.Format("{0:d}", currentDate); // result -> "3/23/2015" ShortDate 
String.Format("{0:T}", currentDate); // result -> "12:40:05 PM" LongTime 
String.Format("{0:D}", currentDate); // result -> "Wednesday, March 23, 2015" LongDate 

Đối với đầy đủ các tài liệu tham khảo thấy MSDN trang here.

+0

Ông muốn đạt được định dạng bên trong một chuỗi nội suy với việc sử dụng một biến 'định dạng'. Nỗ lực của bạn không trả lời những gì anh ta yêu cầu, mặc dù nó không sai. –

+0

@diiN_ điều này là đúng, sau khi tôi đọc ý kiến ​​của mình tôi đã hiểu câu hỏi một cách chính xác, cảm ơn. – mohammadT3d

0

Cuối cùng, tôi đã để lại câu trả lời được chấp nhận cho @diiN_. Giải pháp tôi đã sử dụng là:

//this format is given and I can't change it 
string Format = "{0:dd.MM.yyyy}"; 
DateTime? Date = DateTime.Today; 
string Place = "Washington"; 

string.Format(Format + ", {1}", Date, Place); 
Các vấn đề liên quan