字符串未被识别为有效的DateTime。 :仅在服务器中出错

时间:2017-07-27 05:13:54

标签: c# datetime

服务器中出现日期时间分析错误,该服务器不在localhost中,可能是因为localhost和Server上的时区不同, 代码: 我正在尝试24小时时间格式到12小时(有AM和PM)

protected $quoteFactory;

public function __construct(
    ...
    \Magento\Quote\Model\QuoteFactory $quoteFactory,
    ....
) {
    ....
    $this->quoteFactory = $quoteFactory;
    ....
}

$quoteCollection = $this->quoteFactory->create()->getCollection()
          ->addFieldToFilter('is_active', 1);       

foreach ($quoteCollection as $item) {
    $item->delete();    
}

4 个答案:

答案 0 :(得分:0)

你应该使用不变文化(如果你不需要转换到你的时区)

    string timesx2 =hr2[0] + ":" + hr2[1];  //     19:22
    string s2 = DateTime.ParseExact(timesx2, "HH:mm", CultureInfo.InvariantCulture).ToString("hh:mm tt", CultureInfo.InvariantCulture); // output in localhost is: 7.22 PM 

它在印度文化中没问题。

答案 1 :(得分:0)

您的解析字符串缺少冒号。

当您尝试解析由HH:mm组成的字符串时,您的合成时间字符串的格式为HHmm。那不行。

如果您希望发生一位数小时,也可以从输出格式字符串中删除第二个h。否则输出将是07:22 PM。

 string timesx2 = hr2[0]+":" + hr2[1];  //     19:22
 string s2 = DateTime.ParseExact(timesx2, "HH:mm", CultureInfo.InvariantCulture)
    .ToString("h:mm tt"); // output in localhost is: 7:22 PM 

答案 2 :(得分:0)

  

大写" H"表示24小时制和小写字母" h"指示   12小时的时间,并将尊重候选字符串中的AM / PM。

DateTime.ParseExact("3/21/2015 8:56:04 AM", "M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture)

答案 3 :(得分:0)

将您的本地时间转换为UTC时间

TimeZoneInfo zoneInfo = TimeZoneInfo.FindSystemTimeZoneById(zoneName);
DateTime finalDatetime = TimeZoneInfo.ConvertTime(utcTime, zoneInfo);

从区域名称获取时区信息。从here

获取区域名称
/imports
  /modules
    index.js
    /admin
      index.js
      methods.js
      /client
        adminPage.html
        adminPage.js