我的应用程序当前显示负数为-1.用户已经改变了要求(只是为了改变!),现在我们必须将数字显示为(1).我是否可以为整个应用程序启用更改web.config甚至应用程序的CultureInfo?这样做是否有任何副作用,因为我们有很多包含数字验证器的页面?
谢谢 !
我写了一个asp.net应用程序,我的一个回发例程只是将用户提交的表单数据保存到sql 2005 db.所有在我的开发机器上运行都很棒,但是当我部署到实时站点时,我的解析日期检查器的日期无效.
基本上它是期待在现场机器上的美国日期格式,但这不是我想要的.用户需要能够以dd/MM/yyyy格式输入.因此像21/10/2009这样的有效日期会在实时服务器上返回错误,但在我的开发机器上则不会.下面是抛出异常的代码.
DateTime dt;
dt = DateTime.Parse(sdate);
//sdate in GB dd/MM/yyyy format
Run Code Online (Sandbox Code Playgroud)
是否可以强制解析例程以dd/MM/yyyy格式预期日期?
我收到了CA1305警告.
Microsoft.Globalization:因为'int.Parse(string)'的行为可能会根据当前用户的语言环境设置而有所不同,所以在'_Default.CalculateImageButton_Click(object,ImageClickEventArgs)'中调用此调用,调用'int.Parse(string) ,IFormatProvider)'.如果'int.Parse(string,IFormatProvider)'的结果将显示给用户,请将'CultureInfo.CurrentCulture'指定为'IFormatProvider'参数.否则,如果结果将由软件存储和访问,例如将其保存到磁盘或数据库,请指定"CultureInfo.InvariantCulture".
如果在解析Int32时省略指定文化,究竟会出现什么问题?
有人可以向我解释一下C#中全球化的用途是什么?
它是否用于转换目的?我的意思是我想将任何英语单词转换为选定的语言.
那么全球化或cultureinfo会帮助我吗?
我有一个多语言的应用程序.我正在使用开箱即用的.Net功能.每种语言在App_GlobalResources中都有自己的文件(参见下面的iamge)
在代码背后有什么更好的?
第二个使用较少的代码,它的类型安全,它将在编译时返回错误而不是运行时.
我已经在很大程度上简化了问题,这里是示例代码:
string outputString = string.Empty;
string joinOutputString = string.Empty;
string pathOutputString = string.Empty;
string[] myStrings = new string[4];
myStrings[0] = "First entry";
myStrings[1] = "???";
myStrings[2] = "???";
myStrings[3] = "Last entry";
StringBuilder sb = new StringBuilder();
for (int i = 0; i < myStrings.Length; i++)
{
joinOutputString = string.Join(@"\", joinOutputString, myStrings[i]);
outputString = string.Format(@"{0}{1}\", outputString, myStrings[i]);
pathOutputString = System.IO.Path.Combine(pathOutputString, myStrings[i]);
sb.Append(string.Format(@"{0}\", myStrings[i]));
}
Run Code Online (Sandbox Code Playgroud)
循环结束时所有字符串和StringBuilder的最终值为:
第一次进入\اول\دوم\最后一个条目\
代替
第一次进入\دوم\اول\最后一个条目\
中间的右到左部分被翻转为一个单元.
感谢您提前的时间.
如何基于文化信息循环整周(星期一 - 星期日),所以在我的情况下,星期一将是一周的第一天?是否有可能同时找到int当天的价值?
对于一些信息:我需要这样做,以便为商店开出一些营业时间.
在C#中,我正在使用
CultureInfo.GetCultureInfo(myCulture)
Run Code Online (Sandbox Code Playgroud)
但是字符串变量的格式可能不是很好,有没有办法先尝试解析字符串或先验证它.
今天我遇到了一个我无法解释的奇怪现象.在gridview中有一个包含多个行的网页,需要将其逐个保存到数据库和XML文件中.我最终使用了一个Parallel.ForEach,因为行之间没有关系,所以它们可以独立执行.代码基本上是这样的:
Parallel.ForEach(gvWithData.Rows.Cast<GridViewRow>(), row =>
{
if (row.RowType == DataControlRowType.DataRow)
{
// do some logic and stuff...
var type = new Object { ... };
// save to the database
type.Save();
// retrieve the saved item from the database again
// since we need some autoincrement values from the db
var typeAfterSave = TypeManager.GetFromDb();
// create a custom XML from the object
XmlManager.CreateXml(typeAfterSave);
}
}
Run Code Online (Sandbox Code Playgroud)
为什么这个代码在我Parallel.ForEach用一个好老的替换时会有任何不同之处,foreach而我什么都不做呢?
不同之处在于,在第一种情况下创建XML的文化与第二种情况不同,我没有丝毫的线索.
有什么建议?
所以我正在使用一个API,其中以下列格式检索日期时间 DIE, 28. AUG 2018 12:38:38
我找到的最接近的日期时间格式是这个ddd, dd. MMM yyyy HH:mm:ss.它只适用于它DI,但是API提供了这一天DIE.
是否存在可以解析的格式DIE, 28. AUG 2018 12:38:38我相信此API的开发人员使用某种不同的格式.
有谁知道它可能是什么?
编辑:我试过的一些代码
static void Main(string[] args)
{
const string DateTimeFormat = "ddd, dd. MMM yyyy HH:mm:ss";
var deCultureInfo = new CultureInfo("de-DE");
string input = "DIE, 28. AUG 2018 14:12:01";
// both throws exception
var timestamp1 = DateTime.ParseExact(input, DateTimeFormat, deCultureInfo);
var timestamp2 = DateTime.Parse(input, deCultureInfo);
//Console.WriteLine(DateTime.Now.ToString(deCultureInfo));
}
Run Code Online (Sandbox Code Playgroud)