我们有一个在 Windows 下运行的 .NET 4.7 MVC 5 网络应用程序,它允许用户使用标准的 Windows 显示名称选择他们的时区,例如 (UTC+00:00) Dublin, Edinburgh, Lisbon, London :
我们希望通过使用 .NET Core 2.0 构建的新 API 提供相同的时区选项列表,该 API 将在 Linux docker 容器中运行。这可能吗?
我找到了 Matt Johnson's优秀TimeZoneConverter包,它在 Windows 的 GMT 标准时间 和 IANA 的 Europe/London 之间转换方面做得很好。但是,我似乎无法从任何地方获取 Windows 显示名称。
下面是一些示例代码,用于列出一些时区信息:
var timeZoneIds = TimeZoneConverter.TZConvert.KnownWindowsTimeZoneIds.ToList();
foreach (var timeZoneId in timeZoneIds.Take(4))
{
if (TimeZoneConverter.TZConvert.TryGetTimeZoneInfo(timeZoneId, out var timeZoneInfo))
{
Console.WriteLine($"Windows Id: {timeZoneId}");
Console.WriteLine($".NET Id: {timeZoneInfo.Id}");
Console.WriteLine($"Display name: {timeZoneInfo.DisplayName}");
Console.WriteLine("----");
}
}
在我的 Windows 开发机器上运行时,它给出了这个输出:
Windows Id: AUS Central Standard Time
.NET Id: AUS Central Standard Time
Display name: (UTC+09:30) Darwin
----
Windows Id: AUS Eastern Standard Time
.NET Id: AUS Eastern Standard Time
Display name: (UTC+10:00) Canberra, Melbourne, Sydney
----
Windows Id: Afghanistan Standard Time
.NET Id: Afghanistan Standard Time
Display name: (UTC+04:30) Kabul
----
Windows Id: Alaskan Standard Time
.NET Id: Alaskan Standard Time
Display name: (UTC-09:00) Alaska
----
在 Linux docker 容器中运行时,我们得到:
Windows Id: AUS Central Standard Time
.NET Id: Australia/Darwin
Display name: GMT+09:30
----
Windows Id: AUS Eastern Standard Time
.NET Id: Australia/Sydney
Display name: GMT+10:00
----
Windows Id: Afghanistan Standard Time
.NET Id: Asia/Kabul
Display name: GMT+04:30
----
Windows Id: Alaskan Standard Time
.NET Id: America/Anchorage
Display name: GMT-09:00
----
在 Linux docker 容器内运行时,有什么方法可以获取(比如)(UTC+10:00) Canberra, Melbourne, Sydney 吗?
到目前为止我想到的可能的黑客攻击或解决方法:
(GMT+10:00) AUS Eastern Standard Time最佳答案
TimeZoneNames 4.0.0 版现在可以做到这一点。
string languageCode = CultureInfo.CurrentCulture.IetfLanguageTag; // ex: "en-US"
var displayNames = TZNames.GetDisplayNames(languageCode);
结果是一个字典,其中键是时区的 Windows ID,值是本地化的显示名称。
如果您想返回 IANA 时区名称作为键,则将 true 作为可选的第二个参数传递:
var displayNames = TZNames.GetDisplayNames(languageCode, true);
关于linux - 在 Linux .NET Core 上生成类似 Windows 的友好时区名称列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53300222/
我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0
是否有类似“RVMuse1”或“RVMuselist[0]”之类的内容而不是键入整个版本号。在任何时候,我们都会看到一个可能包含5个或更多ruby的列表,我们可以轻松地键入一个数字而不是X.X.X。这也有助于rvmgemset。 最佳答案 这在RVM2.0中是可能的=>https://docs.google.com/document/d/1xW9GeEpLOWPcddDg_hOPvK4oeLxJmU3Q5FiCNT7nTAc/edit?usp=sharing-知道链接的任何人都可以发表评论
这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub
如何在Ruby中按名称传递函数?(我使用Ruby才几个小时,所以我还在想办法。)nums=[1,2,3,4]#Thisworks,butismoreverbosethanI'dlikenums.eachdo|i|putsiend#InJS,Icouldjustdosomethinglike:#nums.forEach(console.log)#InF#,itwouldbesomethinglike:#List.iternums(printf"%A")#InRuby,IwishIcoulddosomethinglike:nums.eachputs在Ruby中能不能做到类似的简洁?我可以只
之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m
深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal
当我创建一个Rails应用程序时,控制台:railsnewfoo我的代码可以使用字符串“foo”吗?puts"Yourapp'snameis"+app_name_bar 最佳答案 Rails.application.class将为您提供应用程序的全名(例如YourAppName::Application)。从那里您可以使用Rails.application.class.parent获取模块名称。 关于ruby-on-rails-应用程序的名称是否可以作为变量使用?,我们在StackOve
已经有一个问题回答了如何将“America/Los_Angeles”转换为“PacificTime(US&Canada)”。但是我想将“美国/太平洋”和其他过时的时区转换为RailsTimeZone。我无法在图书馆中找到任何可以帮助我完成此任务的东西。 最佳答案 来自RailsActiveSupport::TimeZonedocs:TheversionofTZInfobundledwithActiveSupportonlyincludesthedefinitionsnecessarytosupportthezonesdefinedb
Ruby是否有逐步调试器,类似于Perl的“perl-d”? 最佳答案 ruby-debug(对于ruby1.8),debugger(对于ruby1.9),byebug(对于ruby2.0)以及trepanning系列都有一个-x或--trace选项。在调试器内部,命令setlinetrace将打开或关闭线路跟踪。这是themanualforruby-debug原来的答案已经修改,因为数据噪声文章的链接,唉,不再有效了。还添加了ruby-debug的后继者 关于ruby-Ruby
假设您在Ruby中执行此操作:ar=[1,2]x,y=ar然后,x==1和y==2。是否有一种方法可以在我自己的类中定义,从而产生相同的效果?例如rb=AllYourCode.newx,y=rb到目前为止,对于这样的赋值,我所能做的就是使x==rb和y=nil。Python有这样一个特性:>>>classFoo:...def__iter__(self):...returniter([1,2])...>>>x,y=Foo()>>>x1>>>y2 最佳答案 是的。定义#to_ary。这将使您的对象被视为要分配的数组。irb>o=Obje