Архив рубрики: Публикации

docker-compose — hashicorp vault

Hashicop Vault будем ставить в docker-compose




ставим docker:




yum remove docker docker-engine docker.io
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager —add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce -y
systemctl start docker
systemctl enable docker




ставим docker-compose




https://github.com/docker/compose/releases
на текущий момент самая последняя версия:
2,6,1





https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-linux-x86_64




выкачиваем её:




curl -L «https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-linux-x86_64» -o /usr/local/bin/docker-compose




chmod +x /usr/local/bin/docker-compose




всё готово.




теперь приступим к установке  Vault




cat docker-compose.yml




version: '3.8'



services:



  vault:

    build:

      context: ./vault

      dockerfile: Dockerfile

    ports:

      - 8200:8200

    volumes:

      - ./vault/config:/vault/config

      - ./vault/policies:/vault/policies

      - ./vault/data:/vault/data

      - ./vault/logs:/vault/logs

    environment:

      - VAULT_ADDR=http://127.0.0.1:8200

      - VAULT_API_ADDR=http://127.0.0.1:8200

    command: server -config=/vault/config/vault-config.json

    cap_add:

      - IPC_LOCK

    depends_on:

      - consul



  consul:

    build:

      context: ./consul

      dockerfile: Dockerfile

    ports:

      - 8500:8500

    command: agent -server -bind 0.0.0.0 -client 0.0.0.0 -bootstrap-expect 1 -config-file=/consul/config/config.json

    volumes:

      - ./consul/config/consul-config.json:/consul/config/config.json

      - ./consul/data:/consul/data



  consul-worker:

    build:

      context: ./consul

      dockerfile: Dockerfile

    command: agent -server -join consul -config-file=/consul/config/config.json

    volumes:

      - ./consul/config/consul-config.json:/consul/config/config.json

    depends_on:

      - consul





cat consul/Dockerfile




# base image

FROM alpine:3.14



# set consul version

ENV CONSUL_VERSION 1.10.2



# create a new directory

RUN mkdir /consul



# download dependencies

RUN apk --no-cache add 

      bash 

      ca-certificates 

      wget



# download and set up consul

RUN wget --quiet --output-document=/tmp/consul.zip https://releases.hashicorp.com/consul/${CONSUL_VERSION}/consul_${CONSUL_VERSION}_linux_amd64.zip && 

    unzip /tmp/consul.zip -d /consul && 

    rm -f /tmp/consul.zip && 

    chmod +x /consul/consul



# update PATH

ENV PATH="PATH=$PATH:$PWD/consul"



# add the config file

COPY ./config/consul-config.json /consul/config/config.json



# expose ports

EXPOSE 8300 8400 8500 8600



# run consul

ENTRYPOINT ["consul"]





cat consul/config/consul-config.json




{

  "datacenter": "localhost",

  "data_dir": "/consul/data",

  "log_level": "DEBUG",

  "server": true,

  "ui": true,

  "ports": {

    "dns": 53

  }

}





mkdir consul/data/




cat vault/Dockerfile




# base image

FROM alpine:3.14



# set vault version

ENV VAULT_VERSION 1.11.2



# create a new directory

RUN mkdir /vault



# download dependencies

RUN apk --no-cache add 

      bash 

      ca-certificates 

      wget



# download and set up vault

RUN wget --quiet --output-document=/tmp/vault.zip https://releases.hashicorp.com/vault/${VAULT_VERSION}/vault_${VAULT_VERSION}_linux_amd64.zip && 

    unzip /tmp/vault.zip -d /vault && 

    rm -f /tmp/vault.zip && 

    chmod +x /vault



# update PATH

ENV PATH="PATH=$PATH:$PWD/vault"



# add the config file

COPY ./config/vault-config.json /vault/config/vault-config.json



# expose port 8200

EXPOSE 8200



# run vault

ENTRYPOINT ["vault"]





cat vault/config/vault-config.json




{

  "backend": {

    "consul": {

      "address": "consul:8500",

      "path": "vault/"

    }

  },

  "listener": {

    "tcp":{

      "address": "0.0.0.0:8200",

      "tls_disable": 1

    }

  },

  "ui": true

}





mkdir vault/data/
mkdir vault/logs/




cat vault/policies/app-policy.json




{

  "path": {

    "kv/data/app/*": {

      "policy": "read"

    }

  }

}





запускаем:




docker-compose up -d




ждём пока соберётся.
потом заходим в Vault:




http://192.168.1.170:8200





ставим
Key shares = 5
Key threshold = 3
но вы можете установить любое другое значение




мы получаем 5 ключей.





внизу справа можно скачать json




{

  "keys": [

    "22b07e26d89c620dc68cab7a7e5046d8a807390fe55a477d091f9178bc8339af3c",

    "140b672e0b9fdfae320d80a023261be6a72c019fd85f19f58a29eb1fccd82f26f2",

    "6cec6d35d5f2250e4e007f1a8d88f252f725751d3383d1d0dff8aabc0e1738e16b",

    "17752ae8096c64efe213bc63eccb496a87c8525ad24c0597ecab386adbfc8c86b5",

    "e23fc4247807c314d1590dcb706e131218ae7fdf8b6d6959d208d9398c5ec2168e"

  ],

  "keys_base64": [

    "IrB+JticYg3GjKt6flBG2KgHOQ/lWkd9CR+ReLyDOa88",

    "FAtnLguf364yDYCgIyYb5qcsAZ/YXxn1iinrH8zYLyby",

    "bOxtNdXyJQ5OAH8ajYjyUvcldR0zg9HQ3/iqvA4XOOFr",

    "F3Uq6AlsZO/iE7xj7MtJaofIUlrSTAWX7Ks4atv8jIa1",

    "4j/EJHgHwxTRWQ3LcG4TEhiuf9+LbWlZ0gjZOYxewhaO"

  ],

  "root_token": "s.Rw5WixMGCf84xZD1nHhndj3K"

}




далее нужно ввести ключи по очереди:






далее выбираем рутовый токен который мы скачали вместе с ключами:





мы так же можем выбрать и другие методы:





но мы остановимся на токене




всё ок.
попадаем в панель:





проверим Consul




http://192.168.1.170:8500/





==========================================




добавим аутентификацию по логину и паролю:










ну всё готово. пользователь есть теперь зададим политику.





идём на офф сайт
https://www.vaultproject.io/docs/concepts/policies
или смотрим в default возможные варианты настройки




вставляем политику:




path "secret/*" {

  capabilities = ["create", "read", "update", "patch", "delete", "list"]

}





всё можно создавать секрет












Источник: https://sidmid.ru/docker-compose-hashicorp-vault/



2022-12-02T00:26:07
DevOps

Непрерывное развертывание с помощью GitLab и Kubernetes

Если у вас есть веб-приложение с соответствующим файлом Dockerfile, теперь вы можете перейти к следующему шагу и использовать GitLab для автоматического развертывания вашего приложения в кластере kubernetes. Вот как…




Для этого поста в блоге вам понадобится:




  • ваш исходный код и файл Dockerfile размещены в проекте GitLab



  • бегун GitLab с исполнителем docker-in-docker



  • доступ к кластеру kubernetes




Процесс на самом деле состоит из 2 этапов:




  1. создайте образ Docker и перейдите во встроенный реестр Docker в GitLab



  2. используйте kubectl apply для развертывания новой версии







1. Сборка




Если ваш Dockerfile готов, создание образа — это просто вопрос запуска docker build ...и docker push .... Однако есть еще несколько хитростей:







Итак, ваш .gitlab-ci.yml должен выглядеть так:




stages:
  - test
  - build
  - deploy

build:
  stage: build
  # this job requires docker-in-docker
  tags:
    - dind
  image: docker:19.03.12
  services:
    - docker:19.03.12-dind
  before_script:
    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
  script:
    - docker build --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA --tag $CI_REGISTRY_IMAGE:latest .
    - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA
    - docker push $CI_REGISTRY_IMAGE:latest




После завершения этапа сборки ваше изображение должно появиться в реестре контейнеров GitLab:







2. Развертывание




Чтобы выполнить развертывание, мы должны добавить задание развертывания, которое







Но сначала мы должны обеспечить, чтобы:







a. Доступ GitLab к kubernetes




Чтобы предоставить GitLab доступ к вашему кластеру kubernetes, используйте kubectl для создания учетной записи службы (SA):




kubectl create sa gitlab




В настоящее время этой учетной записи разрешен вход в систему, но у нее нет абсолютно никаких других прав. Это довольно бесполезно! Итак, мы должны определить роль, например, в файле с именем role-deployer.yaml:




kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: default
  name: deployer
rules:
- apiGroups: ["", "extensions", "apps"]
  resources: ["services", "deployments", "replicasets", "pods", "configmap"]
  verbs: ["*"]




В этом примере роль называется deployer и определяется в пространстве имен по умолчанию. Очевидно, что вы должны адаптироваться к своим настройкам.




To apply this configuration:




kubectl apply -f role-deployer.yaml




Now we have to bind this role to our gitlab account, using another file called rolebinding-gitlab-deployer.yaml:




kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: gitlab-deployer
  namespace: default
subjects:
- kind: User
  name: system:serviceaccount:default:gitlab
  apiGroup: ""
roleRef:
  kind: Role
  name: deployer
  apiGroup: ""




And once again we apply the configuration:




kubectl apply -f rolebinding-gitlab-deployer.yaml







Now we have to extract the token that kubernetes created for the gitlab account:




kubectl get sa gitlab -o yaml
kubectl get secret gitlab-token-??? -o yaml | grep token:







Наконец, в GitLab мы определяем 2 переменные вSettings > CI / CD / Variables:










б. Доступ Kubernetes к GitLab




Чтобы разрешить доступ из Kubernetes к реестру GitLab, перейдите Personal menu > Settings > Access Tokensи создайте токен личного доступа с областью apiдействия .







Then, back on kubernetes, use kubectl to create a PullSecret called gitlab-token:




kubectl create secret docker-registry gitlab-token 
  --docker-server=<gitlab.server:port>
  --docker-username=<gitlab-token-name> 
  --docker-password=<gitlab-token>




c. deploy job




We can add the deploy job to .gitlab-ci.yml:




deploy:
  stage: deploy
  image: cylab/kubectl
  before_script:
    # create the configuration (context) for our kubernetes cluster
    - kubectl config set-cluster deploy-cluster --server="$K8S_SERVER" --insecure-skip-tls-verify
    - kubectl config set-credentials gitlab --token=$(echo $K8S_TOKEN | base64 -d)
    - kubectl config set-context deploy-cluster --cluster=deploy-cluster --namespace=default --user=gitlab
    - kubectl config use-context deploy-cluster
  script:
    - envsubst < deploy.tmpl > deploy.yaml
    - kubectl apply -f deploy.yaml




Как вы можете видеть:







Вот пример deploy.tmpl, который вы, очевидно, должны настроить для своего приложения. Он содержит один контейнер и 4 реплики, он использует gitlab-token PullSecret и имеет службу NodePort для предоставления приложения:




apiVersion: v1
kind: Service
metadata:
  name: hello-svc
spec:
  type: NodePort
  ports:
  - port: 80
    nodePort: 30001
    protocol: TCP
  selector:
    app: hello-app

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-deploy
spec:
  replicas: 4
  selector:
    matchLabels:
      app: hello-app
  minReadySeconds: 10
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 0
      maxSurge: 1
  template:
    metadata:
      labels:
        app: hello-app
    spec:
      containers:
      - name: hello-pod
        image: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA
        ports:
        - containerPort: 80
      imagePullSecrets:
      - name: gitlab-token




Наконец-то




Если все пойдет хорошо, при следующем нажатии на ваш репозиторий GitLab:













Источник: https://cylab.be/blog/112/continuous-deployment-with-gitlab-and-kubernetes



Знакомство с LibreOffice Tutorial 08: Введение в LO Base

Знакомство с LibreOffice Tutorial 08: Введение в LO Base

Знакомство с LibreOffice Tutorial 08: Введение в LO Base

Продолжаем серию статей о Знакомство с LibreOffice, сегодня мы проведем этот восьмой и последний год, сосредоточив внимание на приложении, известном как «База LibreOffice». Для этого закройте этот первый цикл постов, посвященных подробному знанию, немного больше о каждом компоненте Офисный пакет LibreOffice.

Кроме того, как многие уже знают, База LibreOffice приложение, созданное для Менеджер базы данных (администратор) Того же самого. И поэтому идеал для создавать, проектировать и управлять различными типами баз данных, стиль Доступ MS Office. Итак, далее мы увидим, что предлагает эта версия с точки зрения графического интерфейса и технических характеристик.



Читать

Форматы дат в программировании

Форматы дат являются одной из наиболее часто используемых функций при написании кода на любом языке программирования. Дата и время не одинаковы во всех регионах мира; например, если у вас вторник, страны на другом конце света будут в понедельник или среду. Из-за огромных различий в часовых поясах программисты включают функции даты в свои программы для представления данных в локальном часовом поясе компьютера.

Формат даты, в котором данные записываются на компьютер, с другой стороны, обычно неорганизован и сложен для понимания, поэтому существуют форматы дат.

 

Что такое форматы дат?

С технической точки зрения формат даты — это формат, в котором дата, месяц и год даты представлены в определенном формате, таком как ‘dd/mm/yy’ или ‘yy/dd/mm’. Разные системы и языки программирования имеют разные форматы.

Каждый язык программирования имеет свой набор функций для отображения дат в определенном формате.

Давайте рассмотрим различные функции форматирования даты, доступные на различных языках программирования.

 

Формат даты PHP

Функция date() в PHP представляет дату в определенном формате. Синтаксис форматирование даты php выглядит следующим образом:

Синтаксис

date(format, timestamp)

 

Здесь,

  • Формат относится к указанному формату, в котором будет представлена дата.
  • Временная метка — это необязательный параметр, в котором вы можете указать временную метку, в которой должны быть представлены время и дата. Если функция не используется, она вернет текущую дату.

Теперь давайте рассмотрим параметры форматирования, которые можно добавить в функцию для отображения дат в различных форматах,

  • d относится к дате месяца, которая будет представлена двумя цифрами (01 или 31).
  • D относится к дню недели, который будет представлен в сокращенных текстах (Mon по Sun).
  • m относится к месяцу, который будет представлен цифрами (01 или 12).
  • M относится к месяцу, который будет представлен в сокращенных текстах (January по December).
  • y относится к году, который будет представлен двумя последними цифрами (20 или 21)
  • Y относится к году, который будет представлен четырьмя цифрами (2020 или 2021)

 

Пример:

<?php

  echo "Текущая дата в разных форматах:" . "n";

  echo date("d/m/Y") . "n";

  echo date("d-m-Y") . "n";

  echo date("d.m.Y") . "n";

  echo date("d.M.Y/D");

?>

 

Вывод:

Текущая дата в разных форматах:

21/06/2022

21-06-2022

21.06.2022

21.Jun.2022/Tue

 

 

Формат даты Javascript

В Javascript функция new date() представляет дату. Синтаксис выглядит следующим образом,

Синтаксис:

new Date();

new Date(value);

new Date(dateString);

 

Здесь,

  • Значение относится к количеству миллисекунд, прошедших с 1 января 1970 года, 00:00:00 UTC.
  • Строка даты указывает на формат даты, в котором вы хотите представить дату.

Дата в Javascript может быть отформатирована с помощью следующих способов,

  • Дата ICO

“2022-06-22” (международный стандарт)

  • Короткая дата

“06/22/2022”

  • Длинная дата

“Jun 22 2022” or “22 Jun 2022”

 

Пример:

<script>

var A = new Date('June 22, 2022');



document.write(A);

</script>

Вывод:

Wed Jun 22, 2022, 00:00:00 GMT+0200 (Central European Summer Time)

 

Формат даты SQL

В SQL функция FORMAT возвращает текущие данные в разных заданных форматах. Синтаксис выглядит следующим образом,

Синтаксис:

FORMAT (value,format[,culture])

GO

 

Здесь,

  • В разделе значение используется функция getdate() для получения даты из столбца date.
  • В разделе формат указаны параметры того, как должна быть представлена дата.
  • Культура используется для представления даты в местной культурной среде.

Вот список параметров, используемых для представления данных в определенной настройке,

  • dd, относится к дню месяца, представленному в числовых значениях. (01-31)
  • dddd, относится к текущему дню, представленному в тексте. (Monday – Wednesday)
  • ММ, относится к месяцу, представленному в цифрах. (01-12)
  • МММ, относится к названию месяца, представленному в аббревиатуре. (Jan – Dec)
  • ММММ, относится к названию месяца, представленному в тексте. (January – December)
  • yy, относится к году, представленному двумя последними цифрами. (21 или 22)
  • гггг, относится к году, представленному четырьмя цифрами. (2021 или 2022)

 

Пример:

SELECT FORMAT (getdate(), 'dd-MM-yy') as date

GO

Вывод:

22-06-22

 

Формат даты Java

В Java в классе LocalDate метод now() отображает текущую дату.

Для форматирования даты импортируется класс DateTimeFormatter, а метод ofPattern() отображает дату в определенном формате.

 

Пример:

public class Time {

  public static void main(String[] args) {

    LocalDateTime currentDate = LocalDateTime.now();

    System.out.println("Формат даты перед форматированием: " + currentDate);

    DateTimeFormatter newDateFormat = DateTimeFormatter.ofPattern("dd-MM-yyyy");



    String dateFormatted = currentDate.format(newDateFormat);

    System.out.println("Формат даты после форматирования: " + dateFormatted);

  }

Вывод:

Формат даты перед форматированием: 2022-06-21T14:41:01.242164

Формат даты после форматирования: 21-06-2022

Вот список параметров, используемых для представления данных в определенной настройке,

  • G, относится к эпохе. (AD)
  • y, относится к году, представленному четырьмя цифрами. (2022)
  • M, относится к текущему месяцу. (June или 06)
  • d, относится к текущей дате. (01-31)
  • E, относится к дню в неделю. (Tuesday)

 

Формат даты на Python

Метод strftime() используется в Python для форматирования даты. Синтаксис выглядит следующим образом,

Синтаксис:

time.strftime(format)

 

Здесь,

Формат относится к формату, в котором будет представлена дата.

Вот краткое изложение параметров, которые будут использоваться для представления данных в определенном формате,

  • %Y, относится к году, представленному четырьмя цифрами. (2021)
  • %y, относится к году, представленному двумя последними цифрами. (21)
  • %m относится к месяцу, представленному двумя цифрами. (01-12)
  • %B, относится к месяцу, представленному в тексте. (January по December)
  • %b относится к месяцу, представленному в сокращенной форме. (Jan по Dec)
  • %A относится к дням недели, представленным в тексте. (Monday по Sunday)
  • %a относится к дням недели, представленным в краткой форме. (Mon по Sun)
  • %w относится к дням недели, представленным в цифрах. (0-6)
  • %d, относится к дате, представленной в цифрах.(01-31)

 

Пример:

from datetime import datetime

  

time = datetime.now()

print("Без форматирования: ", time)

  

print("После форматирования: ", time.strftime("%b %d, %Y"))

Вывод:

Без форматирования: 2022-06-21 14:57:29.616289

После форматирования: Jun 21, 2022

 

Заключение

Используя функцию форматирования даты, программисты могут легко изменить то, как они хотят, чтобы дата была представлена в их проектах. С упомянутыми форматами дат попробуйте изменить форматы даты в своих программах.



2022-12-01T16:20:29
Программирование

Форматы дат в программировании

Форматы дат являются одной из наиболее часто используемых функций при написании кода на любом языке программирования. Дата и время не одинаковы во всех регионах мира; например, если у вас вторник, страны на другом конце света будут в понедельник или среду. Из-за огромных различий в часовых поясах программисты включают функции даты в свои программы для представления данных в локальном часовом поясе компьютера.

Формат даты, в котором данные записываются на компьютер, с другой стороны, обычно неорганизован и сложен для понимания, поэтому существуют форматы дат.

 

Что такое форматы дат?

С технической точки зрения формат даты — это формат, в котором дата, месяц и год даты представлены в определенном формате, таком как ‘dd/mm/yy’ или ‘yy/dd/mm’. Разные системы и языки программирования имеют разные форматы.

Каждый язык программирования имеет свой набор функций для отображения дат в определенном формате.

Давайте рассмотрим различные функции форматирования даты, доступные на различных языках программирования.

 

Формат даты PHP

Функция date() в PHP представляет дату в определенном формате. Синтаксис форматирование даты php выглядит следующим образом:

Синтаксис

date(format, timestamp)

 

Здесь,

  • Формат относится к указанному формату, в котором будет представлена дата.
  • Временная метка — это необязательный параметр, в котором вы можете указать временную метку, в которой должны быть представлены время и дата. Если функция не используется, она вернет текущую дату.

Теперь давайте рассмотрим параметры форматирования, которые можно добавить в функцию для отображения дат в различных форматах,

  • d относится к дате месяца, которая будет представлена двумя цифрами (01 или 31).
  • D относится к дню недели, который будет представлен в сокращенных текстах (Mon по Sun).
  • m относится к месяцу, который будет представлен цифрами (01 или 12).
  • M относится к месяцу, который будет представлен в сокращенных текстах (January по December).
  • y относится к году, который будет представлен двумя последними цифрами (20 или 21)
  • Y относится к году, который будет представлен четырьмя цифрами (2020 или 2021)

 

Пример:

<?php

  echo "Текущая дата в разных форматах:" . "n";

  echo date("d/m/Y") . "n";

  echo date("d-m-Y") . "n";

  echo date("d.m.Y") . "n";

  echo date("d.M.Y/D");

?>

 

Вывод:

Текущая дата в разных форматах:

21/06/2022

21-06-2022

21.06.2022

21.Jun.2022/Tue

 

 

Формат даты Javascript

В Javascript функция new date() представляет дату. Синтаксис выглядит следующим образом,

Синтаксис:

new Date();

new Date(value);

new Date(dateString);

 

Здесь,

  • Значение относится к количеству миллисекунд, прошедших с 1 января 1970 года, 00:00:00 UTC.
  • Строка даты указывает на формат даты, в котором вы хотите представить дату.

Дата в Javascript может быть отформатирована с помощью следующих способов,

  • Дата ICO

“2022-06-22” (международный стандарт)

  • Короткая дата

“06/22/2022”

  • Длинная дата

“Jun 22 2022” or “22 Jun 2022”

 

Пример:

<script>

var A = new Date('June 22, 2022');



document.write(A);

</script>

Вывод:

Wed Jun 22, 2022, 00:00:00 GMT+0200 (Central European Summer Time)

 

Формат даты SQL

В SQL функция FORMAT возвращает текущие данные в разных заданных форматах. Синтаксис выглядит следующим образом,

Синтаксис:

FORMAT (value,format[,culture])

GO

 

Здесь,

  • В разделе значение используется функция getdate() для получения даты из столбца date.
  • В разделе формат указаны параметры того, как должна быть представлена дата.
  • Культура используется для представления даты в местной культурной среде.

Вот список параметров, используемых для представления данных в определенной настройке,

  • dd, относится к дню месяца, представленному в числовых значениях. (01-31)
  • dddd, относится к текущему дню, представленному в тексте. (Monday – Wednesday)
  • ММ, относится к месяцу, представленному в цифрах. (01-12)
  • МММ, относится к названию месяца, представленному в аббревиатуре. (Jan – Dec)
  • ММММ, относится к названию месяца, представленному в тексте. (January – December)
  • yy, относится к году, представленному двумя последними цифрами. (21 или 22)
  • гггг, относится к году, представленному четырьмя цифрами. (2021 или 2022)

 

Пример:

SELECT FORMAT (getdate(), 'dd-MM-yy') as date

GO

Вывод:

22-06-22

 

Формат даты Java

В Java в классе LocalDate метод now() отображает текущую дату.

Для форматирования даты импортируется класс DateTimeFormatter, а метод ofPattern() отображает дату в определенном формате.

 

Пример:

public class Time {

  public static void main(String[] args) {

    LocalDateTime currentDate = LocalDateTime.now();

    System.out.println("Формат даты перед форматированием: " + currentDate);

    DateTimeFormatter newDateFormat = DateTimeFormatter.ofPattern("dd-MM-yyyy");



    String dateFormatted = currentDate.format(newDateFormat);

    System.out.println("Формат даты после форматирования: " + dateFormatted);

  }

Вывод:

Формат даты перед форматированием: 2022-06-21T14:41:01.242164

Формат даты после форматирования: 21-06-2022

Вот список параметров, используемых для представления данных в определенной настройке,

  • G, относится к эпохе. (AD)
  • y, относится к году, представленному четырьмя цифрами. (2022)
  • M, относится к текущему месяцу. (June или 06)
  • d, относится к текущей дате. (01-31)
  • E, относится к дню в неделю. (Tuesday)

 

Формат даты на Python

Метод strftime() используется в Python для форматирования даты. Синтаксис выглядит следующим образом,

Синтаксис:

time.strftime(format)

 

Здесь,

Формат относится к формату, в котором будет представлена дата.

Вот краткое изложение параметров, которые будут использоваться для представления данных в определенном формате,

  • %Y, относится к году, представленному четырьмя цифрами. (2021)
  • %y, относится к году, представленному двумя последними цифрами. (21)
  • %m относится к месяцу, представленному двумя цифрами. (01-12)
  • %B, относится к месяцу, представленному в тексте. (January по December)
  • %b относится к месяцу, представленному в сокращенной форме. (Jan по Dec)
  • %A относится к дням недели, представленным в тексте. (Monday по Sunday)
  • %a относится к дням недели, представленным в краткой форме. (Mon по Sun)
  • %w относится к дням недели, представленным в цифрах. (0-6)
  • %d, относится к дате, представленной в цифрах.(01-31)

 

Пример:

from datetime import datetime

  

time = datetime.now()

print("Без форматирования: ", time)

  

print("После форматирования: ", time.strftime("%b %d, %Y"))

Вывод:

Без форматирования: 2022-06-21 14:57:29.616289

После форматирования: Jun 21, 2022

 

Заключение

Используя функцию форматирования даты, программисты могут легко изменить то, как они хотят, чтобы дата была представлена в их проектах. С упомянутыми форматами дат попробуйте изменить форматы даты в своих программах.



2022-12-01T16:20:29
Программирование

Как восстановить Microsoft Edge в Windows 11

Веб-браузером по умолчанию в Windows 11 является Microsoft Edge. Он построен на той же кодовой базе, что и Google Chrome, и совместим со всеми поддерживаемыми версиями Windows, Linux и macOS.

Если вы не можете открыть Microsoft Edge, или если он открывается на короткое время, а затем закрывается, или если вы не можете открыть определенные веб-страницы, возможны проблемы с Microsoft Edge.

Если у вас возникла проблема с Edge, вы можете использовать встроенный инструмент для ее устранения. Чтобы восстановить Edge, ваш компьютер должен быть подключен к Интернету. Процесс восстановления переустановит Edge, не затрагивая сохраненные данные браузера.

Как восстановить Microsoft Edge в Windows 11

Как упоминалось выше, если вы не можете открыть Microsoft Edge, если он открывается на короткое время, а затем закрывается, или если вы не можете открыть определенные веб-страницы, могут возникнуть проблемы с Microsoft Edge.

Вот как восстановить и переустановить Microsoft Edge в Windows 11

Перед восстановлением Edge убедитесь, что ваш браузер закрыт и у вас есть права администратора на вашем устройстве. Если на ваше устройство вошли несколько пользователей, убедитесь, что Microsoft Edge закрыт для всех пользователей.

Когда будете готовы, откройте приложение «Параметры Windows».

Вы можете сделать это, нажав кнопку меню «Пуск» и выбрав «Настройки». Вы также можете использовать сочетание клавиш (клавиша Windows+I).

Windows 11 новая кнопка настроек

Когда откроется приложение «Настройки», нажмите кнопку «Приложения» слева.

Windows 11 настройки приложения в меню

Справа выберите плитку Приложения и функции, чтобы развернуть ее.

Плитка приложений и функций Windows 11

На панели настроек «Приложения» -> «Приложения и функции» выберите Microsoft Edge, а затем нажмите кнопку параметров (3 точки).

Во всплывающем окне параметров нажмите «Изменить».

Windows 11 восстановить браузер Microsoft Edge

В окне «Восстановить Microsoft Edge» нажмите кнопку «Восстановить». При появлении запроса Разрешить этому приложению вносить изменения на вашем устройстве? , выберите Да.

Windows 11 восстановить кнопку Microsoft Edge

Подождите, пока Edge будет загружен и переустановлен.

windows 11 ремонт microsoft edge скачать

После того, как все будет сделано, Edge следует переустановить и открыть на странице по умолчанию.

windows 11 ремонт microsoft edge о странице

Вывод:

В этом посте показано, как восстановить браузер Microsoft Edge в Windows 11. Если вы обнаружите какую-либо ошибку выше или вам есть что добавить, воспользуйтесь формой комментариев ниже.



2022-11-30T23:53:12
Вопросы читателей