我正在尝试从字符串中检索一个时间跨度,但TryParseExact返回false(失败).
我看不出我做错了什么,你能帮忙吗?我在代码中尝试了2行版本,两者都不起作用.
TimeSpan.TryParseExact("04:00:01","HH:mm:ss",CultureInfo.CurrentCulture, out aTime)
Run Code Online (Sandbox Code Playgroud)
和
TimeSpan.TryParseExact("04:00:01","HH:mm:ss", null, out aTime)
Run Code Online (Sandbox Code Playgroud)
编辑:这里的两个响应都是正确的,我的自定义时间跨度格式的格式错误 - 我犯的错误是假设DateTime的自定义格式适用于TimeSpans,但它们没有.
我有这个代码:
Int32 i1 = 14000000;
byte[] b = BitConverter.GetBytes(i1);
string s = System.Text.Encoding.UTF8.GetString(b);
byte[] b2 = System.Text.Encoding.UTF8.GetBytes(s);
Int32 i2 = BitConverter.ToInt32(b2,0);;
Run Code Online (Sandbox Code Playgroud)
i2等于-272777233.为什么不是输入值?(14000000)?
编辑:我想要做的是将它附加到另一个字符串,然后我使用WriteAllText写入文件
如果我有这个代码:
DateTime dt = DateTime.UtcNow;
string sDate = dt.ToString("yyyy-MM-dd HH:mm:ss.fff zz");
Run Code Online (Sandbox Code Playgroud)
我的sDate看起来像这样:
"2013-04-07 21:05:15.396 +10"
Run Code Online (Sandbox Code Playgroud)
这是当前的UTC日期时间(晚上9:05),但结尾是"+10",这是我当地的时区.
我原以为这个:
"2013-04-07 21:05:15.396 +00"
Run Code Online (Sandbox Code Playgroud)
这是怎么回事?
我想将一个范围(此时为 1d)传递给我的函数,并返回一个包含该范围公式的字符串数组。
到目前为止,这是我的(不工作)代码:
public static object[,] ReadFormulas([ExcelArgument(AllowReference=true)]object arg)
{
ExcelReference theRef = (ExcelReference)arg;
object[,] o = (object[,])theRef.GetValue();
string[,] res = new string[o.GetLength(1),1];
for(int i=0;i<o.GetLength(1);i++)
{
ExcelReference cellRef = new ExcelReference(theRef.RowFirst+i, theRef.ColumnFirst);
res[i,0] = XlCall.Excel(XlCall.xlfGetFormula, cellRef) as string; //Errors here
}
return res;
}
Run Code Online (Sandbox Code Playgroud) 我正在使用Protobuf-net(https://code.google.com/p/protobuf-net/)对我的课程进行序列化,然后尝试通过Amazon SQS进行传输。
当我这样做时,我得到这个错误:
Amazon.SQS.AmazonSQSException: Invalid binary character '#xC' was found in the message body, the set of allowed characters is #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF].
Run Code Online (Sandbox Code Playgroud)
这是不言而喻的。
有没有人有一个很好的解决方案,如何使它工作?
如果我想将4个字节转换为int,我可以这样做:
byte[] b = BitConverter.GetBytes(i1);
int i2 = BitConverter.ToInt32(b,0);
int i3 = b[0] | (b[1]<<8) | (b[2]<<16) | (b[3]<<24);
Run Code Online (Sandbox Code Playgroud)
然后i1,i2,i3将全部相等.
但我如何为uint做同样的事情呢?这个:
uint u1 = uint.MaxValue-1000;
byte[] b = BitConverter.GetBytes(u1);
uint u2 = BitConverter.ToUInt32(b,0);
uint u3 = (uint)(b[0] | (b[1]<<8) | (b[2]<<16) | (b[3]<<24));
Run Code Online (Sandbox Code Playgroud)
导致大的uints过度.
我通过 SQS 发送的一些消息返回此错误:
Amazon.SQS.AmazonSQSException:在消息正文中发现无效的二进制字符“#x1”,允许的字符集为 #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
这些代码实际上是什么意思?显然它们是 unicode 代码,但是我所做的任何 google 搜索都提供了与这些(“#x”)略有不同的格式,我正在努力理解它们。