现在遇到一个自定义时间格式的问题,如2009-10-10 上午 10:10:10,有没有什么方法,无论用户怎么设置时间格式,我在C#中都能得到统一的时间格式:2009-10-10 10:10:10呢?请高手指教!

解决方案 »

  1.   

    string str = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
    这个意思?
      

  2.   

    string strDateTime = DateTime.parse("2009-10-10 上午 10:10:10").ToString("yyyy-MM-dd HH:mm:ss");
      

  3.   

    DateTime.parse("2009-10-10 上午 10:10:10").ToString("yyyy-MM-dd HH:mm:ss") 如果是gridview还需要添加 DataFormatString="{0:yyyy-MM-dd}"  HtmlEncode=false
      

  4.   

    先把合法日期存入DateTime,然后使用DateTime格式化,ls几位的方法应该都可以
      

  5.   


    string str = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
    这样只是得到个字符串,如果用时间格式,用CONVERT进行转换。ToString("yyyy-MM-dd HH:mm:ss");
    有很多种格式,自己可以上网查下。例如:ToString("yyyy年MM月dd日");
      

  6.   

    只能针对已知的格式进行对应的解析,用户自定义格式如果未知的话,无法解析string test = "2009-10-10 上午 10:10:10";
    DateTime dt;
    DateTime.TryParseExact(test, "yyyy-MM-dd ttt HH:mm:ss", new CultureInfo("zh-CN"), DateTimeStyles.None, out dt);
    richTextBox2.Text = dt.ToString("yyyy-MM-dd HH:mm:ss");
      

  7.   

    3楼正确
    也可以在抓取数据的时候规定格式
    mysql数据库可以用到date_format(字段,'%Y-%m-%d %HH:%mm:%ss')
    其他的数据库可以找找
      

  8.   

    可是无法确定用户自定义格式啊?
    3楼的我试过,补充一下,转化成sting后是没有问题,显示“2009-10-10 10:10:20”的形式,可是当再转化成Datetime类型时,还是不行啊,仍显示“2009-10-10 上午 10:10:20”的样子,不知道为什么。
      

  9.   

    是啊,我机上是特意将时间自定义成"yyyy-MM-dd tt HH:mm:ss"这种显示样式的,我现在是想解决这种问题,无论用户怎么自定义时间格式,我都能得到统计一的时间格式如“yyyy-MM-dd HH:mm:ss”。不知道有没有办法?
      

  10.   

    显示的时候显示的不就是string吗?
    真搞不懂你到底要干吗
      

  11.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Text.RegularExpressions;
    using System.Globalization;namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                string test = "2009-10-10 上午 10:10:10";
                DateTime dt;
                DateTime.TryParseExact(test, "yyyy-MM-dd ttt HH:mm:ss", new CultureInfo("zh-CN"), DateTimeStyles.None, out dt);
                Console.WriteLine(dt); 
            }
        }
    }
    应该可以用13楼的方法,结果还是datetime而不是string
      

  12.   

    string date = "2009-10-10 上午 10:10:10";
    date = date.Replace(' 上午 '," ");string date = "2009-10-10 下午 16:10:10";
    date = date.Replace(' 下午 '," ");
      

  13.   

    我测试的是,LCL_data方法。
    string date = "2009-10-10 上午 10:10:10"; 
    date = date.Replace(' 上午 '," "); string date = "2009-10-10 下午 16:10:10"; 
    date = date.Replace(' 下午 '," ");
    这个法可能可以得到字符窜格式,但转化成日期时间类型后还是不行。
      

  14.   

    时间和日期是有个空格间隔开来的,
    date = date.Replace(' 上午'," ");
    再转日期类型试试
      

  15.   


    你先放出你的代码。错误的代码也行取得用户定义的系统日期格式:
    CultureInfo   current=CultureInfo.CurrentCulture   ;  
    string dateTimeFormat = current.DateTimeFormat; 
      

  16.   

    你根本就没有了解DateTime在计算机中是怎么存储的……
    不论什么格式的时间,在计算机里存储都是一样的,而所谓的“格式”只不过是给人看的,要显示什么样的格式都可以……
      

  17.   

      public static DateTime FormatDateTime()
            {
                string dt="2009-10-10 下午 15:48:10";
                //dt=dt.tostring("yyyy-MM-dd HH:mm:ss");//显示"2009-10-10 15:48:10"没问题。
                DateTime times = DateTime.Parse(dt.tostring("yyyy-MM-dd HH:mm:ss"));
                return times;
            }
    最后times的值还是:2009-10-10 下午 15:48:10;可是我想得到的是:2009-10-10 15:48:10;
    还有我机器上右下角时间显示的是:下午 15:48
      

  18.   

    问题是,我需要将DateTime这种类型的数据,参与计算和存储,格式不一样,我得到的数据也是不一样的啊。
    这不就有问题了吗。
      

  19.   


    你参与计算和存储的部分根据DateTime类型还能取不到你要的值吗?(虽然在VS的监测中你看到得是‘2009-10-10 下午 15:48:10’而已)
      

  20.   

    楼上的意思是说,我根本就不需要转换吗?可是我往SQL数据库里存的时候存不进去
      

  21.   

    看来,我不应该用DateTime类型,而直接使用string类型就好了。唉,现在再去改程序,工程量太大了。