小编LIF*_*RED的帖子

在Mongo中存储Utc和本地日期时间

我有一个Mongo C#实现,它将datetime存储为UTC.

MongoDB.Bson.Serialization.Options.DateTimeSerializationOptions options = 
    MongoDB.Bson.Serialization.Options.DateTimeSerializationOptions.UtcInstance;

var serializer = 
    new MongoDB.Bson.Serialization.Serializers.DateTimeSerializer(options);

MongoDB.Bson.Serialization.BsonSerializer.RegisterSerializer(
    typeof(DateTime),
    serializer);
Run Code Online (Sandbox Code Playgroud)

我还需要将用户本地时区与UTC一起存储.为了解释,我有两个属性

DateTime WorkItemToCompleteBy{get; set;}
[BsonDateTimeOptions(Kind = DateTimeKind.Unspecified)]
DateTime WorkItemToCompleteByLocal{get; set;}
Run Code Online (Sandbox Code Playgroud)

我想将澳大利亚/美国/印度/其他时间存储在本地属性中,并将相应的UTC值存储在另一个属性中.由于处理了几十个时区,我有代码将UTC转换为所需的时区并将其存储在WorkItemToCompleteByLocal属性中.我希望Mongo将这个值"按原样"存储并将其返回给我.问题是Mongo总是将它存储为ISODate并将值转换为Utc版本.解释.如果UTC是0730小时,我计算布里斯班时间为1730小时并将其设置为WorkitemToCompleteByLocal,它们将保存为

"WorkItemToCompleteBy" : ISODate("2013-06-05T07:30:00Z"),
"WorkItemToCompleteByLocal" : ISODate("2013-06-05T12:00:00Z"),
Run Code Online (Sandbox Code Playgroud)

Mongo将提供的时间解释为本地,服务器位于印度,并将其转换为相当于1200小时的UTC.虽然它将值恢复为1730(IST虽然)但是它违背了我的目的并阻止我在Mongo上运行任何基于本地时间的查询.没有想法.感谢任何帮助,以帮助存储WorkItemToCompleteByLocal日期'原样'而无需修改

c# datetime mongodb isodate

12
推荐指数
3
解决办法
2万
查看次数

Netty允许不同程序多次绑定相同的端口

我是套接字编程的小伙子.也许我在问一个基本问题.请多多包涵.我写了一个示例netty服务器并从控制台启动它.它运行正常.我遇到的问题是,当我从两个控制台窗口运行相同的服务器时,我希望其中一个抛出'Address in in use'异常.它没有这样做,我不明白为什么.请帮忙.

    public static void main(String[] args) {
    ChannelFactory cf = new NioServerSocketChannelFactory(Executors.newFixedThreadPool(100), new MemoryAwareThreadPoolExecutor(1000,2048,25096,2,TimeUnit.SECONDS));
    //ChannelFactory cf = new OioServerSocketChannelFactory(Executors.newFixedThreadPool(100), Executors.newCachedThreadPool());


    ServerBootstrap bootstrap = new ServerBootstrap(cf);
    bootstrap.setPipelineFactory(new ChannelPipelineFactory() {

        @Override
        public ChannelPipeline getPipeline() throws Exception {
            return Channels.pipeline(new ChannelHandler("test"));
        }
    });

    bootstrap.setOption("child.keepAlive", true);
    bootstrap.setOption("child.tcpNoDelay", true);      
    bootstrap.setOption("child.reuseAddress", true);
    bootstrap.setOption("child.connectTimeoutMillis", 30000);
    //NEVER bootstrap.setOption("child.readWriteFair", true);
    //bootstrap.setOption("disconnect", true);
    bootstrap.setOption("tcpNoDelay", true);
    bootstrap.setOption("reuseAddress", true);
    bootstrap.setOption("connectTimeoutMillis", 30000);
    bootstrap.setOption("readWriteFair", true);
    bootstrap.bind(new InetSocketAddress(9998));        
}
Run Code Online (Sandbox Code Playgroud)

sockets bind netty

7
推荐指数
1
解决办法
5026
查看次数

标签 统计

bind ×1

c# ×1

datetime ×1

isodate ×1

mongodb ×1

netty ×1

sockets ×1