c# - 将数据库 24 小时制转换为 12 小时制

标签 c# datetime

我正在用 MVP 编写一个 Web 应用程序。 我遇到的一个问题是,我不知道如何将数据库中的 24 小时制转换为网页上的 12 小时制。 想法如下:用户以 12 小时制输入时间,但数据库将其保存为 24 小时制。当用户点击一条记录时,数据库中的时间应该以12小时的形式转换回来,并显示在网页上。 有三个下拉框(小时、分钟、上午/下午)。我有 12 小时制到 24 小时制部分。谁能帮我把 24 小时制转为 12 小时制部分? 我不知道如何返回 20:00:00 到 8:00 PM,并将每个值设置为三个下拉框。 这是我当前的代码:

 public string sunOpenTime
    {
        get //Convert 12hr clock to 24 clock
        {
            int hours = 0;
            int mins = 0;
            hours = Convert.ToInt32(ddlSundayOpenTimeHr.Text);
            mins = Convert.ToInt32(ddlSundayOpenTimeMin.Text);
            TimeSpan ts;
            if (ddlSundayFrom.SelectedValue == "PM")
            {
                ts = new TimeSpan(hours + 12, mins, 0);
            }

            else
            {
                ts = new TimeSpan(hours, mins, 0);
            }
            return ts.ToString();
        }

        set // Not really sure what to do here
        {
            sunOpenTime = value; //SunOpenTime is made by two parts: ddlSundayOpenTimeHr.Text + ddlSundayOpenTimeMin.Text;
        }
    }

对于上午/下午下拉列表:

public string ddSundayFrom
    {
        if ... // something should be added here to decide if the value is PM or AM
        ddSundayFrom = 'PM';
        else
        ddSundayFrom = 'AM';
    }

任何帮助或想法将不胜感激。多谢!

最佳答案

我只是想澄清这一点。在 .NET 中,DateTime 表示时间的一个瞬间。它以一种特定的方式存储在内存中,而为用户提供服务的用户界面可以以多种不同的方式显示它。就像如果有人问你时间一样,你可能会对他们说“现在是 1400 小时”,或者你可能会说“现在是下午 2 点”,或者你可能会说“现在是 3 点过一刻”。您可以通过多种不同的方式回答这个问题。

类似地,您的用户界面可以采用 DateTime 结构并以多种不同的方式显示它:

DateTime myDate = new DateTime(2015, 10, 5, 17, 30, 00);
string twelveHour = myDate.ToString("h:mm tt"); // 5:30 PM
string twentyFourHour = myDate.ToString("HH:mm"); // 17:30

您可以查看更多示例here 。但要注意的是,您没有“转换”DateTime 结构。您正在做的是根据日期时间以特定格式组成一个字符串。

关于c# - 将数据库 24 小时制转换为 12 小时制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32956656/

相关文章:

c# - 将锯齿状数组转换为列表

c# - 在 C# 中使用指针进行调试

.net - VB中日期的下一行

macos - dateFormatter 在瑞典返回 nil 的 NSDate

Python 按日期时间分组

python 2.7 mktime 给出相同输入的不同值

php - 在 PHP 上将多种类型的日期字符串格式化为相同的日期格式

c# - 如何使用 WinForms 绘制在面板中移动的球?

c# - 从方法返回的开销

c# - 编写 CRM 2011 插件的最佳设计模式