3

日時を変換して、次の形式を指定したい

Wed Aug 01 2012 14:37:50 GMT+0530 (India Standard Time)

実際、WebページでJqueryを使用してタイマーを表示したいと思います。だから私は私が知っているいくつかのフォーマットを試しました。そして、http://www.dotnetperls.com/datetime-formatからいくつかを見つけましたが、どれも私が必要とする結果を返しません。実際、私はサーバーから時間を渡さなければならないので、次のコードを試しました。 コードビハインド

protected void Button3_Click(object sender, EventArgs e)
{
    //string hello = DateTime.UtcNow.ToString();
    string hello = String.Format("{0:F}", DateTime.UtcNow);

    DateTime.UtcNow.ToString("");
    ScriptManager.RegisterStartupScript(this, this.GetType(), "hdrEmpty1", "show(" + hello + ")", true);
}

Jquery

function show(datetime) {
        alert(datetime);
        var Digital = datetime  //new Date()
        var hours = Digital.getHours()
        var minutes = Digital.getMinutes()
        var seconds = Digital.getSeconds()
        var dn = "AM"
        if (hours > 12) {
            dn = "PM"
            hours = hours - 12
        }
        if (hours == 0)
            hours = 12
        if (minutes <= 9)
            minutes = "0" + minutes
        if (seconds <= 9)
            seconds = "0" + seconds
        document.getElementById('<%= Label1.ClientID %>').innerHTML = hours + ":" + minutes + ":" + seconds + " " + dn
        setTimeout("show()", 1000)
    }
4

5 に答える 5

12

あなたはそれをするために使うことができますdate.ToString("format")。Microsoftは、日付を希望どおりにフォーマットする方法に関する完全なリファレンスを提供しています。

編集:

おそらく、あなたのフォーマットに正確に一致するフォーマットが用意されていないかもしれませんが、上記のリファレンスで提供されているフォーマット指定子に基づいて独自のフォーマットを組み合わせることができます。

// This will output something like Wed Aug 01 2012
date.ToString("ddd MMM dd yyyy");

同じパターンに従って、残りを自分で完了することができると思います。

于 2012-08-01T09:11:56.837 に答える
3

String.Format()独自のカスタムフォーマットを使用および指定できます- ddd mmm dd yyyy。もっと探検するために自分で試してみてください。

于 2012-08-01T09:12:06.357 に答える
0

GMTオフセットをハードコーディングする必要がなく、現地時間がインド標準時であることに依存できない場合は、次の情報からこの情報を取得できますTimeZoneInfo

// get UTC from local time
var today = DateTime.Now.ToUniversalTime();
// get IST from UTC
var ist = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(today, "UTC", "India Standard Time");
// find the IST TimeZone
var tzi = TimeZoneInfo.FindSystemTimeZoneById("India Standard Time");
// get the UTC offset TimeSpan
var offset = tzi.GetUtcOffset(today);
// determine the TimeSpan sign
var sign = offset.Ticks < 0 ? "-" : "+";
// use a custom format string
var formatted = string.Format(CultureInfo.InvariantCulture, "{0:ddd MMM HH:mm:ss} GMT{1}{2:hhmm}", today, sign, offset);
于 2012-08-01T10:20:56.393 に答える
0

すでに提供されている情報では、これを自分で解決することはできませんが、文字列を読み取る必要があるという理由はありません。

"Wed Aug 01 2012 14:37:50 GMT+0530 (India Standard Time)"

次に、日付と時刻を正しい形式( "Wed Aug 01 2012 14:37:50"ビット)で取得し、最後に "GMT + 0530(インド標準時)"を追加します。もちろん、そのビットが常に同じであると仮定します。

したがって、必要なコードは次のとおりです。

string string_name = (date.ToString("ddd MMM dd yyyy HH:mm:ss") + "GMT+0530 \(India Standard Time\)");
//string_name will be in the form "Wed Aug 01 2012 14:37:50 GMT+0530 (India Standard Time)"

しかし、私が言ったように、それはあなたが提供された参照を使用して自分で解決できるはずです。

于 2012-08-01T09:58:45.597 に答える
0

これを試して、C#で日時をインドの日付形式に変換してください

IFormatProvider culture = new System.Globalization.CultureInfo("hi-IN", true);
        DateTime dt2 = DateTime.Parse(txtStatus.Text, culture, System.Globalization.DateTimeStyles.AssumeLocal);
于 2014-02-04T12:49:36.190 に答える