CultureInfo cul=CultureInfo.CreateSpecificCulture("en-us");
DateTime now=DateTime.Now;     
now=now.ToUniversalTime();//转为通用时间
string time=now.ToLocalTime();//转换成本地时间,
Response.Write(time);
要怎么才能把通用时间再转换成指定区域的当地时间呢?
或者有更好的办法呢?|
问题在这里:string time=now.ToLocalTime();//转换成本地时间,
如何针对一个区域性进行转换呢?ToLocalTime()它只能固定转换为本地,但如果转换成其它的呢?

解决方案 »

  1.   

    先转换成格林威治时间,再利用格林威治时间与en-us的时间差比较看看
      

  2.   

    now=now.ToUniversalTime();//这步已经转换了通用时间,
    只是现在再把通用时间转为特定区域的时间.要怎么办呢?
      

  3.   

    DateTimeFormatInfo myDTFI = new CultureInfo( "en-US", false ).DateTimeFormat;DateTime myDT = new DateTime( 2002, 1, 3 );myDT.ToString("s") //-- myDTFI.SortableDateTimePattern
      

  4.   

    Santos(快乐的GG) DateTimeFormatInfo myDTFI 这个怎么没用上呢?
      

  5.   

    System.Globalization.CultureInfo c=new System.Globalization.CultureInfo("en-us");
    System.Threading.Thread.CurrentThread.CurrentCulture=c;
    Response.Write(DateTime.Now);---------------------------------------------------
    欢迎使用AspNetPager免费分页控件:http://www.webdiyer.com
      

  6.   

    Sorry,错了,明天再看一下。
      

  7.   

    Sorry,今天眼睛发炎了,下午没上班,吊了半天针(眼睛发炎也用吊针?),这个问题没碰到过,找到一篇文章先看看:http://easerve.com/developer/tutorials/asp-net-tutorials-dates-Anthony-Moore-FAQ.aspx不行的话等眼睛好了再帮你想办法。:)
      

  8.   

    不行的,切换当前线程的区域性后获取的时间仍然是本地而非指定区域的,看来没有一个单独的方法来获取指定区域的时间,那么能获取指定区域相对UTC的时差也可以的,我在TimeZone类中发现有这个方法,但问题是TimeZone这个类没有实例化,它的构造函数是受保护的,只能通过CurrentTimeZone来获取当前时区而无法实现时区切换。看来这个问题还真是不好解决。
      

  9.   

    试试用 IFormatProvider。string time = now.ToString(CultureInfo.CreateSpecificCulture("en-us"));
      

  10.   

    en-US有三个时区,是不是?你要哪个时区?
      

  11.   

    “en-US有三个时区,是不是?你要哪个时区?”中国不也跨多个时区,但把北京时间作为中国的标准时间啊。有问题么?
      

  12.   

    我用en-us只是说明我要问的问题.它不光是转换成en-us全球都可以转换的..
    ?