Tôi cảm thấy như đây là điều tôi đã làm hàng nghìn lần nên không chắc tại sao nó lại khó khăn đến thế. Tôi đã tạo một phương thức đơn giản trả về ngày hôm nay cho người dùng dựa trên giá trị UTC của họ. Nhưng thay vì trả về một chuỗi giống như một ngày, nó sẽ trả lại rác nàyC# DateTime to String Issue
"䙭/䙭/Ἰ뻱䙭"
Đây là mã.
public string getToday(Context context)
{
var settings = PreferenceManager.GetDefaultSharedPreferences(context);
var offset = settings.GetInt("offset", -5);
var now = DateTime.UtcNow.AddHours(offset);
return now.ToShortDateString();
}
Khi tôi bước vào mã bằng cách sử dụng điểm ngắt, bù trừ và bây giờ cả hai đều có vẻ chính xác. bây giờ chứa các phần ngày hợp lệ tất cả dường như chính xác. Một cái gì đó về chuyển đổi bây giờ để một chuỗi có vẻ đi sai khủng khiếp. Đồng thời thử:
return now.ToString("MM/dd/yyyy");
Kết quả tương tự. Phần lạ là mã dưới đây trong một hoạt động khác hoạt động mà không có vấn đề
var offset = TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now).Hours;
var now = DateTime.UtcNow.AddHours(offset);
now.ToString("MM-dd-yyyy")
văn hóa là gì mã này chạy dưới? – Oded
@Oded Tôi muốn nói không phải tiếng Anh! – Zenexer
@Zenexer - Tôi muốn nói đó là một điều đã cho. Bình luận của tôi đã được nhiều hơn một con trỏ đến OP. – Oded