3

我想将日期时间转换为指定格式

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

实际上我想在网页上使用 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

试试这个在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 回答
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

如果您不想硬编码 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 回答