簡體   English   中英

如何在C#中正確顯示日期時間

[英]how can i show correctly datetime in C#

我有一個波斯日期格式的時間戳,我想轉換為完整的波斯日期,我的代碼在localhost中可以正常工作,但是當將其上載到遠程服務器輸出時已更改為公歷

string dt = "";
PersianCalendar pc = new PersianCalendar();
int Year = Convert.ToInt32(ts.Substring(0, 4));
int Month = Convert.ToInt32(ts.Substring(4, 2));
int Day = Convert.ToInt32(ts.Substring(6, 2));
int Hour = Convert.ToInt32(ts.Substring(8, 2));
int Minute = Convert.ToInt32(ts.Substring(10, 2));
int Second = Convert.ToInt32(ts.Substring(12, 2));

dt = new DateTime(Year, Month, Day, Hour, Minute, Second, 0, pc).ToString("dddd dd MMMM yyyy HH:mm:ss", CultureInfo.CreateSpecificCulture("fa-IR"));

輸出此代碼,我期望是(在本地主機中):

شنبه22آبان1395 13:43:10

並輸出到遠程服務器

شنبه2016年12月13日13:43:10

我應該如何正常工作?

DateTime構造函數中的calendar參數用於解釋整數值,而不是指示日歷的結果。 您編寫的代碼與文化有關,在伊朗,這不是一個好習慣,因為我們在系統中未使用正確的文化。 我的建議是使用這樣的東西:

public string GetPersianDateString(DateTime date)
{
    PersianCalendar pc = new PersianCalendar();
    string dayOfWeek;
    switch (pc.GetDayOfWeek(date))
    {
        case DayOfWeek.Sunday:
            dayOfWeek = "یکشنبه";
            break;
        case DayOfWeek.Monday:
            dayOfWeek = "دوشنبه";
            break;
        case DayOfWeek.Tuesday:
            dayOfWeek = "سه شنبه";
            break;
        case DayOfWeek.Wednesday:
            dayOfWeek = "چهارشنبه";
            break;
        case DayOfWeek.Thursday:
            dayOfWeek = "پنج شنبه";
            break;
        case DayOfWeek.Friday:
            dayOfWeek = "جمعه";
            break;
        case DayOfWeek.Saturday:
            dayOfWeek = "شنبه";
            break;
        default:
            dayOfWeek = "";
            break;
    }
    var day = pc.GetDayOfMonth(date).ToString();
    string month;
    switch (pc.GetMonth(date))
    {
        case 1:
            month = "فروردین";
            break;
        case 2:
            month = "اردیبهشت";
            break;
        case 3:
            month = "خرداد";
            break;
        case 4:
            month = "تیر";
            break;
        case 5:
            month = "مرداد";
            break;
        case 6:
            month = "شهریور";
            break;
        case 7:
            month = "مهر";
            break;
        case 8:
            month = "آبان";
            break;
        case 9:
            month = "آذر";
            break;
        case 10:
            month = "دی";
            break;
        case 11:
            month = "بهمن";
            break;
        case 12:
            month = "اسفند";
            break;
        default:
            month = "";
            break;
    }
    var year=pc.GetYear(date).ToString();
    return dayOfWeek + " " + day + " " + month + " " + year + " " + date.ToShortTimeString();
}

這只是草稿,您可以編寫更好的組織代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM