问题列表 - 第318007页

服务器与本地环境之间的Java时区转换问题

我的服务器和本地环境之间的时区转换遇到问题。我有一个实体帐户,其字段 accountCreationDate 为 OffsetDateTime。详细信息如下:

  • 服务器时间戳:2023-12-20T13:37:17.288582240Z[GMT]
  • 本地时区:Europe/Tirana
  • 服务器时区偏移:0 (GMT)
  • 本地时区偏移:3600 (GMT+01:00) 当我在数据库“SELECT DBTIMEZONE FROM DUAL;”中运行此命令时 结果:“+01:00”

在我的代码中,我尝试在服务器和本地环境之间转换时间戳:

if (accountRequest.getAccountCreationDate() != null) {
Instant instant = Instant.ofEpochMilli(accountRequest.getAccountCreationDate());

ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(instant, ZoneOffset.UTC);
ZonedDateTime cetDateTime = zonedDateTime.withZoneSameInstant(ZoneOffset.ofHours(1));
OffsetDateTime offsetDateTime = cetDateTime.toOffsetDateTime();

requestTransformer.setAccountDateCreation(offsetDateTime);
}
Run Code Online (Sandbox Code Playgroud)

响应变压器:

if (pamUserAccount.getAccountDateCreation() != null) {
OffsetDateTime cetDateTime = pamUserAccount.getAccountDateCreation();

LocalDateTime localDateTime = cetDateTime.toLocalDate().atStartOfDay();
ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneOffset.ofHours(1)); // GMT+01:00
long epochMillis = zonedDateTime.withZoneSameInstant(ZoneOffset.UTC)
        .toInstant()
        .toEpochMilli();

response.setAccountDateCreation(epochMillis);
Run Code Online (Sandbox Code Playgroud)

本地工作正常,时间戳为 1542754800000,转换为 2018-11-21T00:00+01:00 OffsetDateTime 并返回结果。但是,在服务器上,我什么也没有得到。我希望收到同一行数据。对这里可能出了什么问题有什么见解吗?

我也检查了一下:

 pamUserAccount.getAccountDateCreation();
Run Code Online (Sandbox Code Playgroud)

本地我得到:2018-11-21T01:00+01:00

在服务器中我得到:2018-11-21T00:00Z

java database oracle spring-boot java-17

2
推荐指数
1
解决办法
196
查看次数

C++ 中的构造函数继承。派生类的默认构造函数未被调用

我有这个示例代码:

#include <iostream>

class A
{
public:
    A()
    {
        std::cout << "Default constructor of A" << '\n';
    }
    A(int i)
    {
        std::cout << "Inside the constructor of A with one int argument" << '\n';
    }
};

class B : A
{
    using A::A;
public:
    B()
    {
        std::cout << "Default constructor of B" << '\n';
    }
};


int main()
{
    B b(12);

    std::cout << "End of main";
}

Run Code Online (Sandbox Code Playgroud)

哪个输出:

Inside the constructor of A with one int argument
End of main …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance constructor c++17

2
推荐指数
1
解决办法
109
查看次数

在 C++ 中,为什么要使用 `uint8_t` 来声明字符串?

作为使用 React Native 的移动开发人员,我需要使用创建和加密文件的 C++ 代码。我对 C++ 没有太多经验(我上次写一些东西已经是 15 年前在大学时的事了)。

如果我错了,请纠正我。

这让我很烦恼。这是文件的类型定义:

typedef struct File 
{
    uint8_t FileName[64];
    uint8_t userName[64];
}File;
Run Code Online (Sandbox Code Playgroud)

为什么要使用类型uint8_t来存储字符串而不是std::string?

后来,事情变得更加扑朔迷离。我们需要将所有字符一一解析出来,并写入到临时文件中。

#define FILE_NAME_LEN   64


CustomFile CFile::getCustomFileFromFile(tFile f_File)
{
    CustomFile returnValue;
    for(int i = 0;i<FILE_NAME_LEN;i++){
        returnValue.FileName[i] = f_File.FileName[i]; 
    }
    for(int i = 0;i<FILE_NAME_LEN;i++){
        returnValue.user_name[i] = f_File.user_name[i];
    }
    return returnValue;
}



bool WriteEncryptFile(QString fpath,tFile *p_tFile)
{
    // Convert the tFile object to a CustomFile object
    CustomFile customFile = CFile::getCustomFileFromFile(*p_tFile);
}
Run Code Online (Sandbox Code Playgroud)

c++ uint8t

2
推荐指数
1
解决办法
275
查看次数

如何委托基类的不同构造函数并调用派生类构造函数?

我有这个示例代码:

#include <iostream>

class A
{
public:
    A()
    {
        std::cout << "Default constructor of A" << '\n';
    }
    A(int i)
    {
        std::cout << "Inside the constructor of A with one int argument" << '\n';
    }
    A(double i)
    {
        std::cout << "Inside the constructor of A with one double argument" << '\n';
    }
};

class B : A
{
    using A::A;
public:
    B()
    {
        std::cout << "Default constructor of B" << '\n';
    }
};

int main()
{
    B b(12);

    std::cout << …
Run Code Online (Sandbox Code Playgroud)

c++ constructor

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

C++ 可以推断非类型模板参数的类型并强制其余模板参数的类型吗?

考虑这个结构。它是一个范围,但使用模板而不是构造函数,使值静态:

template <int min_v, int max_v>
struct num_range final {
  constexpr static int min = min_v;
  constexpr static int max = max_v;
}
// now you can do
std::cout << num_range<1,3>::min << '\n'; // prints 1
Run Code Online (Sandbox Code Playgroud)

但这是固定的int。如果我希望 C++ 从第一个参数推导数字类型并将其强制应用于第二个参数,该怎么办?

我试过这个:

template <typename TNumber>
template <TNumber min_v, TNumber max_v>
struct num_range final 
Run Code Online (Sandbox Code Playgroud)

我按照相反的顺序尝试了。我知道你可以这样做:

template <auto min_v, decltype(min_v) max_v>
struct num_range final {
    using num_type = decltype(min_v);
    constexpr static num_type min = min_v;
    constexpr static num_type max = max_v;
}; …
Run Code Online (Sandbox Code Playgroud)

c++ templates auto c++17 non-type-template-parameter

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

Typescript 根据另一个属性的值使属性可选

我是 Typescript 的新手,我找不到以下场景的任何解决方案。任何建议都会非常有帮助。

我想让该属性options可选 if typeisSHORT_TEXT或LONG_TEXT。

export interface Question {
  [keyName: string]: any;
  type: QuestionType;
  id: string;
  label: string;
  helpText?: string;
  placeholder?: string;
  value?: string;
  options?: Option[];
  validations?: any;
  required?: boolean;
  priority?: number;
  intent?: Intent[];
}

export type QuestionType =
  | "DROPDOWN"
  | "CHECKBOX"
  | "RADIO"
  | "SHORT_TEXT"
  | "LONG_TEXT";

export interface Option {
  id: string;
  label: string;
  value?: string;
}
Run Code Online (Sandbox Code Playgroud)

typescript

3
推荐指数
1
解决办法
46
查看次数

为什么在传递 {} 时重载解析更喜欢 std::nullptr_t 而不是类?

以下代码打印nullptr而不是empty(godbolt 链接):

#include <iostream>

class empty { };

#if 1
void f(std::nullptr_t) {
    std::cout << "nullptr\n";
}
#endif

void f(empty) {
    std::cout << "empty\n";
}

int main() {
    f({});
}
Run Code Online (Sandbox Code Playgroud)

禁用f(nullptr_t)变体会导致empty打印。当两个变体都可用时,C++ 使用什么规则来选择nullptr_t变体?empty

c++ gcc clang nullptr overload-resolution

17
推荐指数
1
解决办法
987
查看次数

如何在 R 中查找两个大小不等的向量之间的字符串匹配?

我有两个带有字符串的向量,如下所示:

x <- c("Zimbabwe (Rhodesia)", "India", "Equatorial Guinea", "United States")

y <- c("Zimbabwe", "India", "Guinea")
Run Code Online (Sandbox Code Playgroud)

我想获得一个向量,其中包含和之间不完全匹配的字符串。理想的结果是:xy

"Zimbabwe (Rhodesia)" "Zimbabwe" "Equatorial Guinea" "Guinea" "United States"
Run Code Online (Sandbox Code Playgroud)

我试图在这里巩固一些概念 - 我知道我可以用来grep(paste(y, collapse = "|")获取向量的部分匹配,并使用锚点来查找给定字符串的精确匹配。但如何整合它们呢?

我该怎么做呢?

string variables r dplyr

5
推荐指数
1
解决办法
84
查看次数

使用 .NET 8 的 Blazor Web 应用程序中的意外授权行为

我在使用 .NET 8 进行 Blazor 授权时遇到了一些奇怪的行为。该示例是 Blazor Web App 模板的略微修改版本,其默认设置(无授权)。

我确实手动添加了授权,因为 Blazor 默认的授权模板不满足我们的要求。我在下面进一步解释我如何添加授权。

启用授权并且主页标有“授权”属性后,我希望网站在启动时显示“登录”文本,因为我未获得授权:

路由.razor

<Router AppAssembly="@typeof(Program).Assembly">
    <Found Context="routeData">
        <AuthorizeRouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)">
            <NotAuthorized>
                <span>Login</span>
            </NotAuthorized>
        </AuthorizeRouteView>
        <FocusOnNavigate RouteData="@routeData" Selector="h1" />
    </Found>
</Router>
Run Code Online (Sandbox Code Playgroud)

家用剃须刀

@page "/"

@using Microsoft.AspNetCore.Authorization

@attribute [Authorize]

@...
Run Code Online (Sandbox Code Playgroud)

然而,预期的行为并没有发生。相反,我在第一个 Web 请求时收到 401 错误,并且没有显示任何内容。

更奇怪的是,当我从 App.razor 文件中完全删除 Routes 组件(这似乎是整个网站的某种入口点)时,即使没有路由,我仍然收到相同的 401 错误全部到 Home 组件:

应用剃刀

<!DOCTYPE html>
<html lang="en">

<!-- ... -->

<body>
    Hello App
    @* <Routes @rendermode="@InteractiveAuto" /> *@
    <script src="_framework/blazor.web.js"></script>
</body>

</html>
Run Code Online (Sandbox Code Playgroud)

另一方面,如果我从 Home 组件(甚至没有引用)中删除 Authorize …

c# authentication blazor .net-8.0

2
推荐指数
1
解决办法
814
查看次数

duckdb 的构建轮子失败

通过 pyCharm 终端输入 pip3 install duckdb 后,我收到此消息。

错误:无法为 duckdb 构建轮子,这是安装基于 pyproject.toml 的项目所必需的

我在尝试安装其他软件包(如 pygwalker)时收到相同的消息

我使用 pip3 安装 duckdb 和 pygwalker。

python duckdb

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